{"version":3,"mappings":"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GAAI,CACzB,MAAO,QACR,CACH,CAOO,SAASuE,IAASnE,EAAQ,CAC/B,OAAO2D,IAAW3D,EAAQiE,EAAM,CAClC,CC7CO,SAASG,IAAYvC,EAAK,CAC/B,MAAO,IAAIA,EAAI,QAAQwC,IAAeC,GAAe,CAAC,GACxD,CAEA,MAAMD,IAAgB,gCAEtB,SAASC,IAAgBzC,EAAK,CAC5B,OAAO0C,IAAgB1C,EAAI,WAAW,CAAC,CAAC,CAC1C,CAEA,MAAM0C,IAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,ECtKaC,GAAQ,OAAO,OAAO,EAAE,EAgF9B,SAASC,GAAMC,EAAMC,EAASC,EAAcrE,GAAmB,CACpE,MAAMsE,EAAgB,IAAI,IAE1B,UAAW3E,KAAQ,OAAO,OAAOW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CJpB,EAAIkkE,GAAMC,EAAI/iE,CAAC,CAAC,KACnBivB,IAAQA,GAAO,KACfA,GAAOrwB,OAKV,KAAKoB,KAAK+iE,EACLA,EAAI/iE,CAAC,IACRivB,IAAQA,GAAO,KACfA,GAAOjvB,GAMX,OAAOivB,CACR,CAEe,SAAA+zC,IAAY,CAE1B,QADIh7C,EAAE,EAAGi7C,EAAKtkE,EAAGswB,EAAI,GACdjH,EAAI,UAAU,SAChBi7C,EAAM,UAAUj7C,GAAG,KAClBrpB,EAAImkE,GAAMG,CAAG,KAChBh0C,IAAQA,GAAO,KACfA,GAAOtwB,GAIV,OAAOswB,CACR,CCvCA,MAAMi0C,IAAiB,CACrB,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,IAAK,CACH,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UAC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SACP,EACD,CACE,KAAM,SACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,MACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,YACN,gBAAiB,OACjB,OAAQ,CACN,CACE,KAAM,UACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,WACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,OACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,OACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,QACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,SACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,QACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,cACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,WACN,gBAAiB,aACjB,OAAQ,CACN,CACE,KAAM,YACN,KAAM,SACP,EACD,CACE,KAAM,SACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,MACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,eACN,gBAAiB,aACjB,OAAQ,CACN,CACE,KAAM,SACN,KAAM,SACP,EACD,CACE,KAAM,YACN,KAAM,SACP,EACD,CACE,KAAM,SACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,MACP,CACF,CACF,CACH,EACIC,IAAmB,CACrB,CACE,KAAM,QACN,KAAM,WACN,OAAQ,CACN,CACE,QAAS,GACT,KAAM,QACN,KAAM,SACP,EACD,CACE,QAAS,GACT,KAAM,UACN,KAAM,SACP,EACD,CACE,QAAS,GACT,KAAM,QACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,QACN,KAAM,WACN,OAAQ,CACN,CACE,QAAS,GACT,KAAM,OACN,KAAM,SACP,EACD,CACE,QAAS,GACT,KAAM,KACN,KAAM,SACP,EACD,CACE,QAAS,GACT,KAAM,QACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,YACN,gBAAiB,OACjB,OAAQ,CACN,CACE,KAAM,QACN,KAAM,SACP,EACD,CACE,KAAM,UACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,UACN,gBAAiB,aACjB,OAAQ,CACN,CACE,KAAM,UACN,KAAM,SACP,EACD,CACE,KAAM,SACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,MACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,YACN,gBAAiB,OACjB,OAAQ,CACN,CACE,KAAM,UACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,WACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,OACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,OACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,SACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,cACN,gBAAiB,OACjB,OAAQ,CAAE,EACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,WACN,gBAAiB,aACjB,OAAQ,CACN,CACE,KAAM,YACN,KAAM,SACP,EACD,CACE,KAAM,SACN,KAAM,SACP,CACF,EACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,MACP,CACF,CACF,EACD,CACE,KAAM,WACN,KAAM,eA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I,OACvBA,EAAK,UAAYA,EAAK,OAAO,0DCd7BuxI,GAAiB,CACf,QAAS,CACP,KAAM,EACN,OAAQ,CACN,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,gEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,CACF,CACF,EACD,IAAK,CACH,IAAK,EACL,OAAQ,CACN,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,iEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,kEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,iEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,EACD,CACE,mEACA,kEACD,CACF,CACF,oBCxwBH,IAAIuwC,EAASjqP,EAETmoE,EAAOtoE,GACPwsM,EAAQjsM,GACRkyJ,EAAQ9F,GAERr4G,EAASm+G,EAAM,OAEnB,SAAS43F,EAAYp8N,EAAS,CACxBA,EAAQ,OAAS,QACnB,KAAK,MAAQ,IAAIu+K,EAAM,MAAMv+K,CAAO,EAC7BA,EAAQ,OAAS,UACxB,KAAK,MAAQ,IAAIu+K,EAAM,QAAQv+K,CAAO,EAEtC,KAAK,MAAQ,IAAIu+K,EAAM,KAAKv+K,CAAO,EACrC,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,EAAI,KAAK,MAAM,EACpB,KAAK,KAAOA,EAAQ,KAEpBqmB,EAAO,KAAK,EAAE,SAAU,EAAE,eAAe,EACzCA,EAAO,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,aAAc,yBAAyB,CACl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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","nh","lh","mh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","X","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","wl","reactDom_production_min","checkDCE","err","reactDomModule","createRoot","extendStatics","__extends","__","__assign","s","i","__rest","__awaiter","thisArg","_arguments","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","__generator","body","_","verb","op","__read","o","ar","error","__spreadArray","to","from","pack","genericMessage","_a","setPrototypeOf","obj","proto","InvariantError","_super","message","_this","invariant","condition","verbosityLevels","verbosityLevel","wrapConsoleMethod","name","method","global","maybe","thunk","global$1","GLOBAL_KEY","getDEV","DEV","getDefaultExportFromCjs","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","len","args","Item","array","noop","dir","browserExports","process$1","safeGlobal","needToRemove","install","remove","devAssert","Location","startToken","endToken","source","Token","kind","start","end","line","column","QueryDocumentKeys","kindValues","isNode","maybeNode","maybeKind","OperationTypeNode","Kind","isWhiteSpace","code","isDigit","isLetter","isNameStart","isNameContinue","dedentBlockStringLines","lines","_firstNonEmptyLine2","commonIndent","firstNonEmptyLine","lastNonEmptyLine","_firstNonEmptyLine","indent","leadingWhitespace","str","printBlockString","options","escapedValue","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","skipLeadingNewLine","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","formatObjectValue","previouslySeenValues","isJSONable","jsonValue","formatArray","formatObject","object","entries","getObjectTag","key","remaining","items","tag","instanceOf","constructor","_value$constructor","className","valueClassName","stringifiedValue","Source","locationOffset","isSource","printString","escapedRegExp","escapedReplacer","escapeSequences","BREAK","visit","root","visitor","visitorKeys","enterLeaveMap","getEnterLeaveForKind","stack","inArray","keys","index","edits","node","parent","path","ancestors","isLeaving","isEdited","editOffset","editKey","editValue","arrayKey","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","_node$kind","kindVisitor","print","ast","printDocASTReducer","MAX_LINE_LENGTH","join","varDefs","wrap","prefix","variable","type","defaultValue","directives","selections","block","alias","selectionSet","argsLine","typeCondition","variableDefinitions","isBlockString","values","fields","description","operationTypes","operation","interfaces","hasMultilineItems","types","repeatable","locations","maybeArray","separator","_maybeArray$filter$jo","maybeString","_maybeArray$some","isSelectionNode","removeTemporaryGlobals","checkDEV","shouldInclude","variables","getInclusionDirectives","directive","ifArgument","evaledValue","hasDirectives","names","all","nameSet","uniqueCount","hasClientExports","document","isInclusionDirective","directiveArguments","directiveName","ifValue","getFragmentQueryDocument","fragmentName","actualFragmentName","fragments","definition","query","createFragmentMap","symTable","fragment","getFragmentFromSelection","selection","fragmentMap","isNonNullObject","makeReference","isReference","isDocumentNode","isStringValue","isBooleanValue","isIntValue","isFloatValue","isVariable","isObjectValue","isListValue","isEnumValue","isNullValue","valueToObjectRepresentation","argObj","nestedArgObj_1","variableValue","listValue","nestedArgArrayObj","storeKeyNameFromField","field","directivesObj","getStoreKeyName","KNOWN_DIRECTIVES","fieldName","filterKeys","filteredArgs_1","stringify","completeFieldName","stringifiedArgs","previous","stringifyReplacer","_key","copy","argumentsObjectFromField","argObj_1","resultKeyNameFromField","getTypenameFromResult","_i","isField","_b","fragments_1","typename","isInlineFragment","checkDocument","doc","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","fragmentDefinition","getDefaultValues","defaultValues","defs","def","isArray","isNonEmptyArray","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","getDirectiveMatcher","tests","test","makeInUseGetterFunction","defaultKey","map","inUse","removeDirectivesFromDocument","getInUseByOperationName","getInUseByFragmentName","getInUse","ancestor","operationCount","directiveMatcher","hasRemoveDirective","shouldRemoveField","nodeDirectives","originalFragmentDefsByPath","firstVisitMadeChanges","fieldOrInlineFragmentVisitor","docWithoutDirectiveSubtrees","_parent","_path","originalNode","populateTransitiveVars","childFragmentName","varName","allFragmentNamesUsed","fragmentWillBeRemoved","enterVisitor","usedVariableNames_1","varDef","addTypenameToDocument","skip","connectionRemoveConfig","willRemove","arg","removeConnectionDirectiveFromDocument","buildQueryFromSelectionSet","definitionOperation","modifiedDoc","removeClientSetsFromDocument","hasOwnProperty","mergeDeep","sources","mergeDeepArray","target","count","merger","DeepMerger","defaultReconciler","property","reconciler","context","sourceKey","targetValue","_createForOfIteratorHelperLoose","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","arr2","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","hasSymbols","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","Observable","isObservable","hostReportError","enqueue","fn","cleanupSubscription","subscription","cleanup","unsubscribe","closeSubscription","flushSubscription","notifySubscription","observer","onNotify","Subscription","subscriber","subscriptionObserver","SubscriptionObserver","_proto","_proto2","_proto3","done","_this2","_this3","_this4","hasSeed","hasValue","seed","acc","first","_this5","_len","startNext","next","_this6","subscriptions","outer","inner","completeIfDone","observable","_iterator","_step","item","_len2","_key2","symbolObservablePonyfill","Symbol","ponyfill","prototype","fakeObsSymbol","toString","cloneDeep","cloneDeepHelper","val","seen","copy_1","child","copy_2","deepFreeze","workSet","shallowFreeze","maybeDeepFreeze","iterateObserversSafely","observers","argument","observersWithMethod","obs","asyncMap","mapFn","catchFn","complete","activeCallbackCount","completed","promiseQueue","callback","makeCallback","examiner","delegate","both","handler","caught","sub","canUseWeakMap","canUseWeakSet","canUseSymbol","canUseAsyncIteratorSymbol","canUseDOM","usingJSDOM","canUseLayoutEffect","fixObservableSubclass","subclass","set","isPromiseLike","Concast","reason","iterable","nextOrError","nextResultListeners","listener","called","isExecutionPatchIncrementalResult","isExecutionPatchInitialResult","isExecutionPatchResult","isApolloPayloadResult","mergeIncrementalData","prevResult","mergedData","data","isNumericKey","parent_1","graphQLResultHasError","errors","getGraphQLErrorsFromResult","graphQLErrors","incrementalResult","compact","objects","prefixCounts","makeUniqueId","stringifyForDisplay","undefId","mergeOptions","defaults","fromError","errorValue","throwServerError","response","validateOperation","OPERATION_FIELDS","createOperation","starting","setContext","getContext","transformOperation","transformedOperation","passthrough","forward","toLink","ApolloLink","isTerminating","link","LinkError","request","links","left","right","leftLink","rightLink","second","firstLink","nextLink","split","execute","version","isNodeResponse","isReadableStream","isAsyncIterableIterator","isStreamableBlob","isBlob","isNodeReadableStream","asyncIterator","iterator","nodeStreamIterator","stream","waiting","onData","chunk","shiftedArr","onError","pair","onEnd","getNext","promiseIterator","promise","resolved","readerIterator","reader","responseIterator","PROTOCOL_ERRORS_SYMBOL","graphQLResultHasProtocolErrors","isApolloError","generateErrorMessage","ApolloError","protocolErrors","clientErrors","networkError","errorMessage","extraInfo","readMultipartBody","_c","_d","_e","decoder","contentType","delimiter","boundaryVal","boundary","buffer","running","_f","searchFrom","headers","contentType_1","_g","_h","_j","parseHeaders","parseJsonBody","handleError","headerText","headersInit","name_1","bodyText","getResult","parseError","readJsonBody","parseAndCheckHttpResponse","serializeFetchParameter","label","serialized","defaultHttpOptions","defaultHeaders","defaultOptions","fallbackHttpConfig","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","http","config","removeDuplicateHeaders","operationName","extensions","preserveHeaderCase","normalizedHeaders_1","headerData","normalizedHeaders","checkFetcher","fetcher","createSignalIfSupported","controller","signal","selectURI","fallbackURI","contextURI","rewriteURIForGET","chosenURI","queryParams","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","newURI","backupFetch","createHttpLink","linkOptions","uri","preferredFetch","includeExtensions","useGETForQueries","includeUnusedVariables","requestOptions","linkConfig","clientAwarenessHeaders","contextHeaders","contextConfig","unusedNames_1","_controller","definitionIsMutation","definitionIsSubscription","isSubscription","hasDefer","acceptHeader","currentFetch","ctype","HttpLink","fnToStr","previousComparisons","equal","check","aTag","bTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","info","aKey","aValue","aCode","endsWith","nativeCodeSuffix","isDefinedKey","full","suffix","fromIndex","bSet","defaultMakeData","forEach","slice","Trie","weakness","makeData","isObjRef","currentContext","MISSING_VALUE","idCounter","makeSlotClass","slots","saved","globalKey","host","globalHost","Slot","defaultDispose","Cache","max","dispose","older","newer","parentEntrySlot","toArray","collection","maybeUnsubscribe","entryOrDep","emptySetPool","POOL_TARGET_SIZE","assert","optionalMessage","valueIs","valueGet","valueCopy","Entry","mightBeDirty","rememberParent","reallyRecompute","reportDirty","forgetChildren","eachParent","forgetChild","dep","reportDirtyChild","reportCleanChild","entry","recomputeNewValue","maybeSubscribe","setClean","reportClean","parentCount","parents","parentWasClean","childValue","removeDirtyChild","_value","EntryMethods","depsByKey","subscribe","depend","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","caches","originalFunction","cache","keyArgs","makeCacheKey","optimistic","dirtyKey","peekKey","forgetKey","ApolloCache","optimisticId","updateResult","transaction","update","MissingFieldError","hasOwn","isNullish","defaultDataIdFromObject","__typename","_id","defaultConfig","normalizeConfig","shouldCanonizeResults","getTypenameFromStoreObject","store","objectOrReference","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","match","selectionSetMatchesResult","storeValueIsStoreObject","makeProcessedFieldsMerger","extractFragmentContext","DELETE","delModifier","INVALIDATE","EntityStore","policies","group","objOrRef","objOrIdOrRef","mergeIntoStore","ref","dataId","storeObject","Layer","dependOnExistence","existing","incoming","merged","storeObjectReconciler","fieldsToDirty_1","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","fieldNameOrOptions","fieldValue","modify","newValue","limit","evicted","extraRootIds","newData","__META","rest_1","rootId","ids","snapshot","idsToRemove","root_1","found_1","workSet_1","CacheGroup","caching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","Root","resultCaching","Stump","layerId","replay","ownStoreObject","parentStoreObject","fromParent","existingObject","incomingObject","existingValue","incomingValue","shallowCopy","isObjectOrArray","ObjectCanon","original","proto_1","array_1","firstValueIndex_1","obj_1","json","canonicalStringify","stringifyCanon","resetCanonicalStringify","canonical","stringifyCache","execSelectionSetKeyArgs","StoreReader","canonizeResults","peekArgs","other","returnPartialData","rootRef","execResult","missing","firstMissing","latest","enclosingRef","objectsToMerge","missingMerger","handleMissing","resultName","finalResult","frozen","childResult","assertSelectionSetForIdValue","tree","cacheSlot","cacheInfoMap","getCacheInfo","forgetCache","rv","recallCache","makeVar","listeners","broadcast","oldListeners","attach","specifierInfoCache","lookupSpecifierInfo","spec","cacheKey","keyFieldsFnFromSpecifier","specifier","extract","keyObject","collectSpecifierPaths","schemaKeyPath","extracted","extractKeyPath","extractKey","keyArgsFnFromSpecifier","collected","keyPath","firstKey","firstChar","directiveName_1","directiveArgs","variableName","varKeyPath","extractor","getSpecifierPaths","toMerge","paths_1","currentPath_1","normalize","reducer","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","partialContext","normalizeReadFieldOptions","policy","keyFn","specifierOrId","typePolicies","queryType","mutationType","subscriptionType","keyFields","setMerge","merge","read","which","old","possibleTypes","supertype","subtype","policy_1","supertypes","rest","inbox","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","checkingFuzzySubtypes","regExp","fuzzyString","fieldSpec","specifierOrString","nameOrField","readOptions","makeFieldFunctionOptions","parentTypename","childTypename","storage","makeMergeObjectsFunction","toReference","canRead","readFieldArgs","argc","eType","iType","typesDiffer","getContextFlavor","clientOnly","deferred","flavored","StoreWriter","overwrite","operationDefinition","mergeTree","fieldNodeSet","entityRef","applied","fieldsWithSelectionSets_1","hasSelectionSet_1","hasMergeFunction_1","childTree","warnAboutDataLoss","readField","result_1","resultFieldKey","getChildMergeTree","maybeRecycleChildMergeTree","dataRef","sets","previous_1","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","flatten","inheritedContext","visitedNode","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","remainingRightKeys_1","leftTree","warnings","existingRef","incomingObj","getChild","parentType","typeDotName","childTypenames","InMemoryCache","rootStore","resetResultIdentities","previousReader","watch","idToRemove","newOptimisticData","removeOptimistic","onWatchUpdated","perform","layer","optimisticData","alreadyDirty","diff","lastDiff","NetworkStatus","isNetworkRequestInFlight","networkStatus","assign","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","last","defaultFetchPolicy","fetchPolicy","initialFetchPolicy","opDef","saveAsLastResult","lastResult","logMissingFieldErrors","newResult","variablesMustMatch","reobserveOptions","vars","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","updatedQuerySet","fetchMoreResult","updateQuery","reobserveCacheFirst","subscriptionData","newOptions","pollInterval","newNetworkStatus","pollingInfo","maybeFetch","poll","useDisposableConcast","oldVariables","oldFetchPolicy","mergedOptions","concast","fromLink","lastError","errorResult","obsQuery","nextFetchPolicy","LocalState","client","resolvers","fragmentMatcher","resolverGroup","remoteResult","onlyRunForcedResolvers","localResult","forceResolvers","rootValue","mainDefinition","selectionsToResolve","defaultOperationType","execContext","isClientFieldDescendant","resultsToMerge","fieldResult","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","isClientField","isSingleASTNode","selectionsToResolveCache","collectByDefinition","definitionNode","matches_1","___","spread","fragmentSelections","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","cancelNotifyTimeout","QueryInfo","queryId","oq","oldDiff","watchOptions","lastWrite","cacheWriteBehavior","shouldWriteResult","diffOptions","errorPolicy","ignoreErrors","writeWithErrors","QueryManager","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","assumeImmutableResults","_info","cancel","mutation","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","keepRootFields","mutationId","mutationStoreValue","self","storeResult","cacheWrites","skipCache","updateQueries_1","observableQuery","queryName","updater","currentQueryResult","nextQueryResult","results_1","write","isFinalResult","transformCache","transformed","noConnection","clientQuery","serverQuery","cacheEntry_1","add","include","queries","queryNamesAndDocs","legacyQueryOptions","desc","included","nameOrDoc","includeStandby","observableQueryPromises","makeObservable","hasErrors","hasProtocolErrors","observablePromise_1","deduplication","inFlightLinkObservables_1","byVariables_1","varJson_1","requestId","linkDocument","aqr","notifyOnNetworkStatusChange","normalized","fromVariables","sourcesWithInfo","cleanupCancelFn","containsDataFromLink","updateCache","includedQueriesById","results","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","shouldNotify","newContext","hasSuggestedDevtools","ApolloClient","credentials","ssrForceFetchDelay","connectToDevTools","typeDefs","clientAwarenessName","clientAwarenessVersion","nav","url","payload","serializedState","newLink","contextKey","getApolloContext","React.createContext","ApolloProvider","children","ApolloContext","React.createElement","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","useCallbackRef","initialValue","useState","useMergeRefs","refs","ItoI","innerCreateMedium","middleware","assigned","medium","cbs","pendingQueue","executeQueue","cycle","filter","createSidecarMedium","SideCar","sideCar","Target","exportSidecar","exported","effectCar","nothing","RemoveScroll","React.forwardRef","parentRef","React.useRef","React.useState","callbacks","setCallbacks","forwardProps","removeScrollBar","enabled","shards","noIsolation","inert","allowPinchZoom","Container","gapMode","containerRef","containerProps","React.Fragment","React.cloneElement","React.Children","getNonce","makeStyleTag","nonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style","styleHookSingleton","sheet","styles","isDynamic","React.useEffect","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","cs","top","getGapWidth","offsets","documentWidth","windowWidth","Style","getStyles","allowRelative","important","gap","RemoveScrollBar","noRelative","noImportant","React.useMemo","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","overflow","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","axis","ownerDocument","current","isScrollable","elementCouldBeScrolled","getScrollVariables","getVScrollVariables","scrollTop","scrollHeight","clientHeight","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","direction","handleScroll","endTarget","event","sourceDelta","noOverscroll","directionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","position","scroll_1","capacity","elementScroll","getTouchXY","getDeltaXY","extractRef","deltaCompare","generateStyle","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","React.useCallback","touch","touchStart","deltaX","deltaY","currentAxis","moveDirection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","scrollTouchStart","scrollWheel","scrollTouchMove","inst","ReactRemoveScroll","createPolymorphicComponent","component","findElementAncestor","element","selector","_element","getPreviousIndex","elements","loop","getNextIndex","onSameLevel","sibling","parentSelector","createScopedKeydownHandler","siblingSelector","onKeyDown","activateOnFocus","orientation","_nextIndex","_previousIndex","nextIndex","previousIndex","getContextItemIndex","elementSelector","createSafeContext","Context","createContext","React","ctx","useContext","packSx","sx","closeOnEscape","createEventHandler","parentEventHandler","eventHandler","useHovered","hovered","setHovered","dispatchEvent","detail","useIsomorphicEffect","useLayoutEffect","useEffect","createUseExternalEvents","_useExternalEvents","events","handlers","eventKey","createEvent","isElement","toVal","mix","clsx","tmp","DEFAULT_COLORS","fontStyles","theme","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","prop","focusStyles","primaryShade","colorScheme","themeColor","getPrimaryShade","color","shade","primaryFallback","useSplittedShade","splitterColor","_splittedShade","splittedShade","_shade","getGradientColorStops","colors","stops","linearGradient","deg","radialGradient","gradient","getThemeColor","createConverter","units","px","replaced","rem","em","getSize","size","sizes","getBreakpointValue","largerThan","breakpoint","smallerThan","isHexColor","hex","hexToRgba","hexString","shorthandHex","parsed","rgbStringToRgba","toRgba","rgba","alpha","cover","offset","darken","dark","input","lighten","light","radius","defaultRadius","getColorIndexInfo","splittedColor","variant","getGradient","variant2","gradient2","colorInfo","_primaryShade","_color","primaryColor","hover","hoverStyle","placeholderStyles","dimmed","fns","__defProps","__getOwnPropDescs","__spreadProps","attachFunctions","themeBase","MANTINE_SIZES","_DEFAULT_THEME","DEFAULT_THEME","sheetForTag","createStyleElement","StyleSheet","before","nodes","rule","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","hash","length","charat","trim","pattern","replace","replacement","indexof","search","substr","begin","strlen","sizeof","append","combine","character","characters","char","prev","peek","caret","token","alloc","dealloc","delimit","whitespace","escaping","commenter","identifier","compile","rules","rulesets","pseudo","points","declarations","atrule","scanning","ampersand","reference","comment","declaration","ruleset","post","j","serialize","output","rulesheet","weakMemoize","func","ret","memoize","identifierWithPointTracking","toRules","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","shouldCache","_extends","reactIs_production_min","reactIsModule","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","hoistNonReactStatics_cjs","isBrowser","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","registerStyles","isStringTag","insertStyles","murmur2","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","createStringFromObject","previousCursor","cached","string","interpolated","labelPattern","serializeStyles","stringMode","strings","identifierName","hashString","syncFallback","create","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","React.useLayoutEffect","EmotionCacheContext","withEmotionCache","forwardRef","ThemeContext","getTheme","outerTheme","mergedTheme","createCacheWithTheme","ThemeProvider","React.useContext","Global","sheetRef","rehydrating","sheetRefCurrent","keyframes","insertable","GlobalStyles","assignSizeVariables","targetUnitConverter","MantineCssVariables","headings","heading","mergeTheme","currentTheme","themeOverride","headingsAcc","mergedBreakpoints","mergeThemeWithFunctions","filterProps","NormalizeCSS","MantineProviderContext","useMantineTheme","useMantineProviderStyles","useMantineEmotionCache","useComponentDefaultProps","defaultProps","contextPropsPayload","contextProps","MantineProvider","emotionCache","withNormalizeCSS","withGlobalStyles","withCSSVariables","inherit","elevations","getDefaultZIndex","level","useGuaranteedMemo","deps","useRef","defaultMantineEmotionCache","useEmotionCache","refPropertyName","getRef","argCopy","cssFactory","_cssFactory","params","useCss","mergeClassNames","cx","classes","contextClassNames","part","assignAccStyles","contextParams","extractStyles","stylesPartial","getContextVariation","createStyles","getCssObject","useStyles","cssObject","componentStyles","providerStyles","contextVariations","mergedStyles","popIn","transitions","DEFAULT_EVENTS","useClickOutside","shouldIgnore","attachMediaListener","getInitialValue","useMediaQuery","getInitialValueInEffect","matches","setMatches","queryRef","useDidUpdate","dependencies","mounted","useFocusReturn","opened","shouldReturnFocus","lastActiveElement","returnFocus","clearFocusTimeout","TABBABLE_NODES","FOCUS_SELECTOR","hidden","visible","parentElement","getElementTabIndex","tabIndex","focusable","nodeName","isTabIndexNotNaN","tabbable","findTabbableDescendants","scopeTab","finalTabbable","randomId","createAriaHider","containerNode","rootNodes","ariaHidden","prevAriaHidden","prevFocusId","useFocusTrap","active","restoreAria","focusNode","focusElement","setRef","useCallback","handleKeyDown","__useId","useReactId","useId","staticId","reactId","uuid","setUuid","useWindowEvent","mergeRefs","useMergedRef","useUncontrolled","finalValue","onChange","uncontrolledValue","setUncontrolledValue","handleUncontrolledChange","useReducedMotion","useDisclosure","initialState","onOpen","onClose","setOpened","open","isOpened","close","toggle","__objRest","exclude","extractSystemStyles","others","mx","my","mt","mr","py","pt","pr","opacity","fz","fw","lts","fs","tt","miw","maw","mih","mah","bgsz","bgp","bgr","bga","pos","bottom","inset","display","getSortedKeys","sorted","getResponsiveValue","getValue","breakpointKey","baseValue","breakpointValue","cssValue","getColorValue","getSizeValue","identity","getFontSizeValue","NEGATIVE_VALUES","getSpacingValue","valueGetters","SYSTEM_PROPS","getSystemStyles","systemStyles","systemProps","systemProp","extractSx","useSx","partial","_Box","Element","Box","_UnstyledButton","unstyled","UnstyledButton","ACTION_ICON_VARIANTS","getVariantStyles","Bars","_a2","Oval","Dots","LOADERS","Loader","defaultLoader","_ActionIcon","disabled","loaderProps","loading","__staticSelector","loader","ActionIcon","Portal","innerRef","setMounted","createPortal","OptionalPortal","withinPortal","CloseIcon","width","height","iconSizes","_CloseButton","iconSize","_iconSize","CloseButton","Alert","title","icon","withCloseButton","closeButtonLabel","titleId","bodyId","getTextDecoration","underline","strikethrough","getTextColor","getLineClamp","lineClamp","getTruncate","truncate","inline","weight","transform","align","italic","_Text","span","Text","getColor","Divider","labelPosition","labelProps","vertical","horizontal","withLabel","useLabelDefaultStyles","arrow","padding","isRef","arrow$1","deepEqual","useLatestRef","useFloating","placement","strategy","platform","whileElementsMounted","setData","latestMiddleware","setLatestMiddleware","referenceRef","floatingRef","whileElementsMountedRef","platformRef","_setReference","floating","_setFloating","setReference","setFloating","computePosition","fullData","isMountedRef","ReactDOM.flushSync","serverHandoffComplete","genId","useFloatingId","setId","createPubSub","_map$get","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","getDocument","getPlatform","uaData","getUserAgent","_ref","brand","getWindow","isHTMLElement","isShadowRoot","OwnElement","isVirtualClick","androidRe","isVirtualPointerEvent","isMouseLikePointerType","pointerType","strict","safePolygonIdentifier","getDelay","useHover","_temp","delay","handleClose","mouseOnly","restMs","move","onOpenChange","domReference","parentId","handleCloseRef","delayRef","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","isHoverOpen","_dataRef$current$open","onDismiss","onLeave","html","closeWithDelay","runElseBranch","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","isClickLikeOpenEvent","onMouseEnter","openDelay","onMouseLeave","onScrollMouseLeave","_handleCloseRef$curre","_tree$nodesRef$curren","_tree$nodesRef$curren2","parentFloating","setPointerRef","FloatingDelayGroupContext","useDelayGroupContext","FloatingDelayGroup","timeoutMs","state","setState","React.useReducer","initialCurrentIdRef","setCurrentId","currentId","useDelayGroup","_ref2","_ref3","initialDelay","unset","activeElement$1","activeElement","_activeElement","_activeElement$shadow","contains","rootNode","getChildren","allChildren","_node$context","currentChildren","_currentChildren","_node$context2","getTarget","useSafeInsertionEffect","useEvent","isEventTargetWithin","bubbleHandlerKeys","captureHandlerKeys","normalizeBubblesProp","bubbles","_bubbles$escapeKey","_bubbles$outsidePress","useDismiss","nodeId","escapeKey","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","ancestorScroll","nested","outsidePressFn","outsidePress","insideReactTreeRef","escapeKeyBubbles","outsidePressBubbles","shouldDismiss","_child$context","onOutsidePress","insideReactTree","win","canScrollX","canScrollY","xCond","targetIsInsideChildren","_child$context2","onScroll","getOverflowAncestors","_doc$defaultView","useFocus","keyboardOnly","blockFocusRef","onBlur","relatedTarget","movedToFocusGuard","useRole","role","referenceId","floatingProps","unstable_onOpenChange","useFloating$1","domReferenceRef","setDomReference","setPositionReference","positionReference","mergeProps","userProps","propsList","elementKey","_map$get2","useInteractions","getReferenceProps","getFloatingProps","getItemProps","useFloatingAutoUpdate","positionDependencies","delayedUpdate","setDelayedUpdate","autoUpdate","getPopoverMiddlewares","middlewares","shift","limitShift","flip","usePopover","_opened","onToggle","rects","POPOVER_ERRORS","PopoverContextProvider","usePopoverContext","PopoverTarget","refProp","popupType","forwardedProps","targetRef","accessibleProps","cloneElement","shadow","useStyles$U","transitionStatuses","getTransitionStyles","transition","duration","timingFunction","shared","useTransition","exitDuration","onEnter","onExit","onEntered","onExited","shouldReduceMotion","reduceMotion","transitionDuration","setTransitionDuration","transitionStatus","setStatus","handleStateChange","shouldMount","preHandler","newTransitionDuration","preStateTimeout","Transition","keepMounted","transitionTimingFunction","FocusTrap","focusTrapRef","horizontalSide","arrowY","arrowOffset","arrowPosition","verticalSide","arrowX","radiusByFloatingSide","getArrowPositionStyles","arrowSize","arrowRadius","side","baseStyles","arrowPlacement","FloatingArrow","PopoverDropdown","onKeyDownCapture","transitionStyles","_b2","getFloatingPosition","flippedPosition","Popover","arrowRef","onPositionChange","transitionProps","withArrow","closeOnClickOutside","portalProps","clickOutsideEvents","trapFocus","zIndex","defaultOpened","withRoles","targetNode","setTargetNode","dropdownNode","setDropdownNode","uid","popover","useInputProps","required","errorProps","descriptionProps","_wrapperProps","inputContainer","inputWrapperOrder","withAsterisk","wrapperProps","_params","InputLabel","labelElement","htmlFor","onMouseDown","InputError","InputDescription","InputWrapperContext","InputWrapperProvider","useInputWrapperContext","getInputOffsets","hasDescription","hasError","inputIndex","aboveInput","belowInput","InputWrapper","sharedProps","isRequired","errorId","descriptionId","_describedBy","describedBy","_label","_description","_input","Fragment","_error","content","InputPlaceholder","INPUT_VARIANTS","multiline","invalid","rightSectionWidth","withRightSection","iconWidth","offsetBottom","offsetTop","pointer","invalidColor","sizeStyles","useStyles$O","_Input","rightSection","rightSectionProps","Input","AvatarPlaceholderIcon","AvatarGroupContext","AvatarGroupProvider","spacing","useAvatarGroupContext","AvatarGroup","AVATAR_VARIANTS","getGroupStyles","withinGroup","variantStyles","useStyles$L","_Avatar","src","alt","imageProps","setError","Avatar","sizeValue","Burger","_theme","buttonBorderWidth","ButtonGroup","BUTTON_VARIANTS","sizes$1","getSizeStyles","withLeftIcon","withRightIcon","_sizes","getWidthStyles","fullWidth","_Button","leftIcon","rightIcon","uppercase","loaderPosition","Button","_Paper","withBorder","Paper","_Center","Center","fluid","DrawerProvider","useDrawerContext","ModalBaseProvider","useModalBaseContext","useStyles$C","ModalBaseCloseButton","useStyles$A","blur","fixed","_Overlay","center","Overlay","ModalBaseOverlay","onClick","handleClick","useStyles$x","ModalBaseContent","paddingValue","useStyles$v","ModalBaseHeader","useStyles$t","ModalBaseTitle","useStyles$r","ModalBaseBody","NativeScrollArea","useLockScroll","shouldLockScroll","setShouldLockScroll","_transitionDuration","ModalBaseDefaultProps","ModalBase","lockScroll","titleMounted","setTitleMounted","bodyMounted","setBodyMounted","rtlTransitions","DrawerRoot","scrollAreaComponent","drawerTransition","DrawerContent","Scroll","Drawer","withOverlay","overlayProps","closeButtonProps","hasHeader","FLEX_SYSTEM_PROPS","Flex","rowGap","columnGap","justify","GridProvider","useGridContext","getColumnFlexBasis","colSpan","columns","getColumnMaxWidth","grow","getColumnFlexGrow","getColumnOffset","getGutterSize","gutter","getBreakpointsStyles","orders","gutters","gutterXs","gutterSm","gutterMd","gutterLg","gutterXl","offsetXs","offsetSm","offsetMd","offsetLg","offsetXl","xs","sm","xl","order","orderXs","orderSm","orderMd","orderLg","orderXl","useStyles$o","isValidSpan","Col","getGutterStyles","Grid","filterFalsyChildren","Children","GROUP_POSITIONS","noWrap","useStyles$l","Group","filteredChildren","useDelayedHover","openTimeout","closeTimeout","clearTimeouts","openDropdown","closeDropdown","MENU_ERRORS","MenuContextProvider","useMenuContext","MenuDivider","MenuDropdown","wrapperRef","handleMouseEnter","handleMouseLeave","useStyles$i","_MenuItem","closeMenuOnClick","itemRef","itemIndex","_others","handleFocus","MenuItem","MenuLabel","MenuTarget","Menu","closeOnItemClick","trigger","resetHovered","toggleDropdown","getItemIndex","ModalProvider","useModalContext","yOffset","xOffset","centered","fullScreen","ModalRoot","ModalContent","Modal","TextInput","inputProps","TooltipGroupContext","TooltipGroupProvider","useTooltipGroupContext","TooltipGroup","getColors","TOOLTIP_ERRORS","useFloatingTooltip","boundaryRef","horizontalOffset","verticalOffset","handleMouseMove","clientX","clientY","TooltipFloating","useTooltip","settings","uncontrolledOpened","setUncontrolledOpened","groupDelay","_Tooltip","tooltip","Tooltip","Space","Stack","getFontSize","getLineHeight","Title","ModalsContext","useModals","ConfirmModal","cancelProps","confirmProps","labels","closeOnConfirm","closeOnCancel","groupProps","onCancel","onConfirm","cancelLabel","confirmLabel","handleCancel","handleConfirm","handleCloseModal","modal","canceled","modalsReducer","action","remainingModals","useModalsEvents","openModal","closeModal","closeAllModals","openConfirmModal","openContextModal","modals","separateConfirmModalProps","ModalsProvider","modalProps","dispatch","useReducer","stateRef","closeAll","modalId","getCurrentModal","currentModal","innerProps","ContextModal","separatedModalProps","separatedConfirmProps","currentModalChildren","currentModalProps","ErrorBoundaryContext","ErrorBoundary","Component","_this$props$onReset","_this$props","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","isValidElement","withErrorBoundary","errorBoundaryProps","Wrapped","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","propTypesModule","hasElementType","hasMap","hasSet","hasArrayBuffer","reactFastCompare","format","argIndex","shallowequal","objA","objB","compare","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","createSyncStoragePersister","throttleTime","deserialize","retry","trySave","persistedClient","throttle","errorCount","cacheString","wait","timer","Subscribable","isServer","functionalUpdate","isValidTimeout","timeUntilStale","updatedAt","staleTime","parseQueryArgs","arg1","arg2","arg3","isQueryKey","parseMutationArgs","parseFilterArgs","matchQuery","filters","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","fetching","mutationKey","hashQueryKey","isPlainObject","partialDeepEqual","replaceEqualDeep","isPlainArray","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","scheduleMicrotask","getAbortController","replaceData","prevData","FocusManager","onFocus","_this$cleanup","setup","_this$cleanup2","focused","focusManager","onlineEvents","OnlineManager","onOnline","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","outerResolve","outerReject","cancelOptions","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","_config$retry","_config$retryDelay","retryDelay","shouldRetry","defaultLogger","createNotifyManager","transactions","notifyFn","batchNotifyFn","batch","flush","schedule","batchCalls","originalQueue","notifyManager","Removable","newCacheTime","Query","getDefaultState","setStateOptions","_this$retryer","_this$retryer2","_this$retryer3","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","abortController","queryFnContext","addSignalProperty","fetchFn","_context$fetchOptions2","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","_action$meta","_action$dataUpdatedAt","hasData","initialDataUpdatedAt","QueryCache","_options$queryHash","queryHash","queryInMap","Mutation","_this$retryer$continu","executeMutation","_this$options$retry","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","MutationCache","_this$resuming","pausedMutations","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","pageParam","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","newPageParams","cancelled","_context$signal","_context$signal2","queryFn","buildNewPages","pages","param","page","fetchPage","manual","queryFnResult","getNextPageParam","getPreviousPageParam","QueryClient","_this$unsubscribeFocu","_this$unsubscribeOnli","_this$queryCache$find","parsedOptions","cachedData","queryKeyOrFilters","defaultedOptions","_this$queryCache$find2","queryCache","refetchFilters","promises","_filters$refetchType","_options$cancelRefetc","firstMatchingDefaults","QueryObserver","shouldFetchOnMount","shouldFetchOn","notifyOptions","prevOptions","prevQuery","shouldFetchOptionally","nextRefetchInterval","shouldAssignObserverCurrentProperties","trackedResult","_fetchOptions$cancelR","_this$options$refetch","nextInterval","prevResultState","prevResultOptions","queryChange","queryInitialState","prevQueryResult","dataUpdatedAt","errorUpdatedAt","status","isPreviousData","isPlaceholderData","fetchOnMount","fetchOptionally","selectError","placeholderData","isFetching","isLoading","isError","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","shouldLoadOnMount","optimisticResult","_this$currentMutation","_this$currentMutation2","_this$mutateOptions$o","_this$mutateOptions","_this$mutateOptions$o2","_this$mutateOptions2","_this$mutateOptions$o3","_this$mutateOptions3","_this$mutateOptions$o4","_this$mutateOptions4","dehydrateMutation","dehydrateQuery","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","dehydrate","mutations","shouldDehydrateMutation","shouldDehydrateQuery","hydrate","dehydratedState","mutationCache","dehydratedMutation","_options$defaultOptio","dehydratedQuery","_options$defaultOptio2","dehydratedQueryState","useSyncExternalStoreShim_production_min","shimModule","useSyncExternalStore","useSyncExternalStore$1","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","useQueryClient","queryClient","QueryClientProvider","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","_useErrorBoundary","useMutation","MutationObserver","onStoreChange","mutate","mutateOptions","cacheableEventTypes","isCacheableEventType","eventType","persistQueryClientRestore","persister","maxAge","buster","hydrateOptions","expired","busted","persistQueryClientSave","dehydrateOptions","persistClient","persistQueryClientSubscribe","unsubscribeQueryCache","unusbscribeMutationCache","persistQueryClient","hasUnsubscribed","persistQueryClientUnsubscribe","restorePromise","defineChain","chain","fees","formatters","serializers","getContractAddress","address","getUrl","getVersion","BaseError","shortMessage","details","docsPath","walk","IntegerOutOfRangeError","min","signed","InvalidHexBooleanError","SizeOverflowError","givenSize","maxSize","isHex","hexOrBytes","sliceLength","SliceOffsetOutOfBoundsError","SizeExceedsPaddingSizeError","targetSize","pad","padHex","padBytes","hex_","bytes","paddedBytes","padEnd","hexes","_v","toHex","opts","numberToHex","stringToHex","boolToHex","bytesToHex","assertSize","value_","maxValue","minValue","encoder","toBytes","numberToBytes","boolToBytes","hexToBytes","stringToBytes","charCodeMap","charCodeToBase16","nibbleLeft","nibbleRight","size_","hexToBigInt","hexToBool","hexToNumber","hexToString","transactionType","formatTransaction","transaction_","formatBlock","formatLog","log","eventName","statuses","formatTransactionReceipt","transactionReceipt","rpcTransactionType","formatTransactionRequest","transactionRequest","InvalidAddressError","ChainDoesNotSupportContract","blockNumber","contract","currentChainId","ChainNotFoundError","ClientChainNotConfiguredError","etherUnits","gweiUnits","weiUnits","formatUnits","decimals","negative","integer","fraction","formatGwei","wei","unit","ExecutionRevertedError","cause","FeeCapTooHighError","maxFeePerGas","FeeCapTooLowError","NonceTooHighError","NonceTooLowError","NonceMaxValueError","InsufficientFundsError","IntrinsicGasTooHighError","gas","IntrinsicGasTooLowError","TransactionTypeNotSupportedError","TipAboveFeeCapError","maxPriorityFeePerGas","UnknownNodeError","addressRegex","isAddress","concat","concatHex","concatBytes","execTyped","regex","tupleRegex","formatAbiParameter","abiParameter","formatAbiParameters","abiParameters","formatAbiItem","abiItem","getAction","includeName","InvalidDefinitionTypeError","formatAbiParams","formatAbiParam","AbiConstructorNotFoundError","AbiConstructorParamsNotFoundError","AbiDecodingDataSizeTooSmallError","AbiDecodingZeroDataError","AbiEncodingArrayLengthMismatchError","expectedLength","givenLength","AbiEncodingBytesSizeMismatchError","expectedSize","AbiEncodingLengthMismatchError","AbiErrorSignatureNotFoundError","signature","AbiEventSignatureEmptyTopicsError","AbiEventSignatureNotFoundError","AbiEventNotFoundError","AbiFunctionNotFoundError","functionName","AbiFunctionOutputsNotFoundError","BytesSizeMismatchError","DecodeLogDataMismatch","DecodeLogTopicsMismatch","InvalidAbiEncodingTypeError","InvalidAbiDecodingTypeError","InvalidArrayError","FilterTypeNotSupportedError","normalizeSignature","valid","getFunctionSignature","fn_","getEventSignature","number","lengths","exists","instance","checkFinished","out","U32_MASK64","_32n","fromBig","lst","Al","toBig","shrSH","_l","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","rotr32L","rotlSH","rotlSL","rotlBH","rotlBL","Bl","add3L","Cl","add3H","low","add4L","Dl","add4H","add5L","El","add5H","u64","crypto","u8a","u32","createView","rotr","word","isLE","utf8ToBytes","arrays","sum","Hash$1","wrapConstructor","hashCons","hashC","msg","wrapXOFConstructorWithOpts","randomBytes","bytesLength","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","round","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","keccakP","rounds","idx1","idx0","B0","B1","Tl","curH","curL","PI","Keccak","Hash","blockLen","outputLen","enableXOF","take","bufferOut","gen","sha3_224","sha3_256","sha3_384","sha3_512","keccak_224","keccak_256","keccak_384","keccak_512","genShake","shake128","shake256","keccak256","to_","getEventSelector","sliceHex","sliceBytes","assertStartOffset","assertEndOffset","encodeAbiParameters","preparedParams","prepareParams","encodeParams","prepareParam","arrayComponents","getArrayComponents","encodeArray","encodeTuple","encodeAddress","encodeBool","encodeNumber","encodeBytes","encodeString","staticSize","encoded","staticParams","dynamicParams","dynamicSize","dynamicChild","preparedParam","paramSize","bytesSize","hexValue","partsLength","parts","param_","getFunctionSelector","getAbiItem","abi","isSelector","abiItems","isArgOfType","argType","abiParameterType","encodeEventTopics","topics","indexedInputs","args_","encodeArg","createFilterRequestScope","requestMap","method_","transport","createContractEventFilter","fromBlock","toBlock","getRequest","parseAccount","account","encodeFunctionData","panicReasons","solidityError","solidityPanic","checksumAddress","address_","chainId","hexAddress","getAddress","decodeAbiParameters","decodeParams","decodedValues","consumed","decodeParam","decodeArray","decodeTuple","decodeString","decodeBytes","decodeNumber","decodeAddress","decodeBool","decodedChild","hasDynamicChild","hasUnnamedChild","decodeErrorResult","replacer","space","formatAbiItemWithArgs","includeFunctionName","formatEther","prettyPrint","maxLength","FeeConflictError","InvalidSerializableTransactionError","TransactionExecutionError","gasPrice","prettyArgs","TransactionNotFoundError","blockHash","blockTag","TransactionReceiptNotFoundError","WaitForTransactionReceiptTimeoutError","CallExecutionError","account_","ContractFunctionExecutionError","contractAddress","sender","formattedArgs","functionWithParams","ContractFunctionRevertedError","decodedData","metaMessages","errorName","errorArgs","firstArg","errorWithParams","ContractFunctionZeroDataError","RawContractError","HttpRequestError","WebSocketRequestError","RpcRequestError","TimeoutError","unknownErrorCode","RpcError","ProviderRpcError","ParseRpcError","InvalidRequestRpcError","MethodNotFoundRpcError","InvalidParamsRpcError","InternalRpcError","InvalidInputRpcError","ResourceNotFoundRpcError","ResourceUnavailableRpcError","TransactionRejectedRpcError","MethodNotSupportedRpcError","LimitExceededRpcError","JsonRpcVersionUnsupportedError","UserRejectedRequestError","UnauthorizedProviderError","UnsupportedProviderMethodError","ProviderDisconnectedError","ChainDisconnectedError","SwitchChainError","UnknownRpcError","EXECUTION_REVERTED_ERROR_CODE","getContractError","AccountNotFoundError","EstimateGasExecutionError","getNodeError","executionRevertedError","getEstimateGasError","extract_","formatted","assertRequest","BaseFeeScalarError","Eip1559FeesNotSupportedError","MaxFeePerGasTooLowError","BlockNotFoundError","getBlock","blockTag_","includeTransactions_","includeTransactions","blockNumberHex","getGasPrice","estimateMaxPriorityFeePerGas","internal_estimateMaxPriorityFeePerGas","block_","maxPriorityFeePerGasHex","estimateFeesPerGas","internal_estimateFeesPerGas","baseFeeMultiplier","denominator","multiply","base","baseFeePerGas","getTransactionCount","getTransactionType","prepareTransactionRequest","gasPrice_","estimateGas","accessList","chainFormat","balance","estimateContractGas","decodeEventLog","strict_","argTopics","inputs","isUnnamed","topic","decodeTopic","nonIndexedInputs","getLogs","events_","logs","getContractEvents","decodeFunctionResult","multicall3Abi","universalResolverErrors","universalResolverResolveAbi","universalResolverReverseAbi","textResolverAbi","addressResolverAbi","universalSignatureValidatorAbi","aggregate3Signature","getChainContractAddress","getCallError","schedulerCache","createBatchScheduler","shouldSplitBatch","sort","exec","scheduler","getScheduler","pendingPromise","getBatchedArgs","setScheduler","call","shouldPerformMulticall","scheduleMulticall","getRevertErrorData","offchainLookup","offchainLookupSignature","request_","batchSize","multicallAddress_","multicallAddress","requests","calls","calldata","returnData","success","readContract","callRequest","simulateContract","dataSuffix","listenersCache","cleanupCache","callbackCount","observe","observerId","callbackId","getListeners","unwatch","emit","time","res","emitOnBegin","initialWaitTime","interval","initialWait","promiseCache","responseCache","getCache","buildCache","withCache","cacheTime","getBlockNumber","getFilterChanges","_client","uninstallFilter","watchContractEvent","onLogs","poll_","pollingInterval","previousBlockNumber","initialized","unsubscribe_","assertCurrentChain","ChainMismatchError","getTransactionError","getChainId","chainIdHex","sendRawTransaction","serializedTransaction","sendTransaction","writeContract","addChain","nativeCurrency","rpcUrls","blockExplorers","createClient","parameters","extend","extendFn","extended","combined","withRetry","delay_","retryCount","attemptRetry","isDeterministicError","buildRequest","err_","retryAfter","createTransport","custom","provider","defaultRetryCount","transports_","rank","transports","onResponse","fetch","rankOptions","rankTransports","onTransports","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","maxLatency","latency","scores","latencies","latencyScore","successes","stabilityScore","UrlRequiredError","getNativeWebSocket","WebSocket","withTimeout","errorInstance","timeoutId","signal_","socketsCache","getSocket","socket","webSocket","onMessage","socket_","id_","webSocketAsync","rpc","retryCount_","timeout_","url_","isNullUniversalResolverError","callType","encodedLabelToLabelhash","namehash","hashFromEncodedLabel","hashed","encodeLabelhash","labelhash","packetToBytes","packet","list","getEnsAddress","coinType","universalResolverAddress_","universalResolverAddress","functionData","EnsAvatarInvalidMetadataError","EnsAvatarInvalidNftUriError","EnsAvatarUriResolutionError","EnsAvatarUnsupportedNamespaceError","namespace","networkRegex","ipfsHashRegex","base64Regex","dataURIRegex","isImageUri","img","getGateway","defaultGateway","resolveAvatarUri","gatewayUrls","isEncoded","ipfsGateway","arweaveGateway","networkRegexMatch","protocol","subpath","subtarget","isIPNS","isIPFS","replacedUri","parsedUri","getJsonImage","getMetadataAvatarUri","parseAvatarUri","resolvedURI","isOnChain","parseNftUri","uri_","asset_namespace","tokenID","eip_namespace","chainID","erc_namespace","getNftTokenUri","nft","parseAvatarRecord","record","parseNftAvatarUri","nftUri","resolvedNftUri","encodedJson","decoded","uriTokenId","getEnsText","getEnsAvatar","getEnsName","reverseNode","getEnsResolver","resolverAddress","createBlockFilter","createEventFilter","createPendingTransactionFilter","getBalance","getBlockTransactionCount","getBytecode","formatFeeHistory","feeHistory","reward","getFeeHistory","blockCount","rewardPercentiles","getFilterLogs","bytesRegex","integerRegex","hashTypedData","domain_","primaryType","types_","domain","getTypesForEIP712Domain","validateTypedData","hashDomain","hashStruct","encodeData","encodedTypes","encodedValues","hashType","encodeField","encodedHashType","encodeType","unsortedDeps","findTypeDependencies","primaryType_","parsedType","typeValuePairs","validateData","struct","type_","integerMatch","_type","bytesMatch","encodeDeployData","bytecode","presignMessagePrefix","hashMessage","messageBytes","prefixBytes","parseUnits","rounded","parseEther","ether","formatStorageProof","storageProof","proof","formatProof","getProof","storageKeys","getStorageAt","slot","getTransaction","getTransactionConfirmations","transactionBlockNumber","getTransactionReceipt","receipt","multicall","allowFailure","batchSize_","contracts","chunkedCalls","currentChunk","currentChunkSize","callData","aggregate3Results","aggregate3Result","universalSignatureValidatorByteCode","numberToHexUnpadded","num","hexByte","byte","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","numberToVarBytesBE","ensureBytes","equalBytes","b1","b2","bitLen","bitGet","bitSet","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","reset","reseed","pred","validatorFns","validateObject","validators","optValidators","checkField","isOptional","checkVal","isBytesEqual","a_","b_","verifyHash","signatureHex","verifyMessage","verifyTypedData","watchBlockNumber","emitMissed","onBlockNumber","enablePolling","prevBlockNumber","waitForTransactionReceipt","confirmations","onReplaced","replacedTransaction","retrying","_unobserve","_unwatch","blockNumber_","replacementTransaction","watchBlocks","onBlock","prevBlock","watchEvent","watchPendingTransactions","onTransactions","hashes","publicActions","createPublicClient","deployContract","walletClient","getAddresses","getPermissions","requestAddresses","requestPermissions","permissions","signMessage","message_","signTransaction","signTypedData","typedData","switchChain","watchAsset","walletActions","createWalletClient","subscriptionId","goerli","mainnet","ChainNotConfiguredForConnectorError","connectorId","ConnectorNotFoundError","normalizeChainId","has","Events","EE","once","addListener","emitter","evt","clearEvent","EventEmitter","a1","a2","a3","a4","a5","module","__accessCheck","member","__privateGet","getter","__privateAdd","__privateSet","setter","Connector","chains","blockExplorer","getInjectedName","ethereum","getName","unknownCount","_provider","InjectedConnector","options_","accounts","unsupported","detectedName","error2","image","symbol","__privateMethod","define_import_meta_env_default","configureChains","defaultChains","providers","stallTimeout","httpUrls","wsUrls","configExists","apiConfig","activeChain","chainHttpUrls","publicClient","chainWsUrls","targetChain","ChainNotConfiguredError","ConnectorAlreadyConnectedError","ConfigChainsNotFound","SwitchChainNotSupportedError","connector","findAndReplace","cacheRef","find","curr","cachedString","getCallParameters","getUnit","getReferenceKey","cutoff","getCutoff","createReplacer","circularReplacer","hasReplacer","hasCircularReplacer","thisCutoff","valueCutoff","value2","noopStorage","createStorage","deserialize2","serialize2","defaultState","storeKey","_isAutoConnecting","_lastUsedConnector","_addEffects","addEffects_fn","Config","autoConnect","connectors","logger","webSocketPublicClient","rawState","connectors_","createStore","subscribeWithSelector","persist","newState","connected","publicClient_","webSocketPublicClient_","lastUsedConnector","onDisconnect","prevConnector","createConfig","config_","getConfig","connect","config2","activeConnector","disconnect","erc20ABI","erc20ABI_bytes32","getPublicClient","getWalletClient","getWebSocketPublicClient","watchPublicClient","handleChange","watchWebSocketPublicClient","prepareWriteContract","walletClient_","assertActiveChain","minimizedAbi","readContracts","contractsByChainId","contracts2","multicallResults","resultIndexes","ContractFunctionExecutionError2","fetchBalance","fetchContractBalance","erc20Config","formatUnits2","ContractFunctionExecutionError3","hexToString2","trim2","getAccount","getNetwork","activeChains","switchNetwork","watchAccount","shallow4","fetchBlockNumber","waitForTransaction","txn","hexToString3","activeChainId","withSelector_production_min","withSelectorModule","createCoreConfig","queryClientContext","WagmiConfig","useConfig","useSyncExternalStore2","pkg.useSyncExternalStore","queryKeyHashFn","queryKey17","trackResult","useBaseQuery","Observer","isRestoring","errorResetBoundary","React2.useState","React2.useCallback","React2.useEffect","isIdle","useMutation_","useQuery","baseQuery","useQueryClient2","useQueryClient_","usePublicClient","useSyncExternalStoreWithSelector","useWebSocketPublicClient","useSyncExternalStoreWithSelector2","useChainId","queryKey2","scopeKey","queryFn2","useBlockNumber","chainId_","suspense","onSettled","onSuccess","React5.useEffect","useInvalidateOnBlock","React7.useCallback","isPlainObject2","useSyncExternalStoreWithTracked","getSnapshot","getServerSnapshot","isEqual","trackedKeys","React8.useRef","useSyncExternalStoreWithSelector3","useAccount","onConnect","watchAccount_","React9.useCallback","previousAccountRef","React9.useRef","previousAccount","React9.useEffect","queryKey4","queryFn4","useBalance","queryKey_","React10.useMemo","balanceQuery","mutationFn","useConnect","onMutate","isSuccess","mutateAsync","connect2","React11.useCallback","connectAsync","mutationKey2","mutationFn2","useDisconnect","disconnect2","disconnectAsync","_variables","_data","mutationKey3","mutationFn3","useSignMessage","signMessage2","React12.useCallback","signMessageAsync","queryKey6","queryFn6","useContractRead","blockNumberOverride","cacheOnBlock","enabled_","isDataEqual","keepPreviousData","select","structuralSharing","oldData","deepEqual3","replaceEqualDeep2","React17.useMemo","enabled2","_typeof","_toPrimitive","hint","prim","_toPropertyKey","toPrimitive","_defineProperty","toPropertyKey","ownKeys","_objectSpread2","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","ieee754","mLen","nBytes","eLen","eMax","eBias","nBits","rt","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","createBuffer","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","fill","encoding","checked","actual","fromArrayLike","arrayView","byteOffset","numberIsNaN","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","hexSliceLookupTable","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","boundsError","lo","checkInt","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","sym","getMessage","Base","range","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","leadSurrogate","byteArray","dst","alphabet","table","i16","BufferBigIntNotDefined","Buffer$1","primordials","sep","thisArgs","thenFn","bufferModule","AsyncFunction","Blob","AggregateError","rej","_unused","AbortController","AbortSignal","browserModule","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","codes","NodeError","hideStackFrames","aggregateTwoErrors","innerError","outerError","expected","instances","_actual$constructor","inspected","AbortError","ArrayIsArray","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberIsInteger","NumberIsNaN","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","NumberParseInt","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","ERR_SOCKET_BAD_PORT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_OUT_OF_RANGE","ERR_UNKNOWN_SIGNAL","normalizeEncoding","require$$2","isAsyncFunction","isArrayBufferView","signals","isInt32","isUint32","octalReg","modeDesc","parseFileMode","validateUint32","validateInteger","validateInt32","positive","validateString","validateOneOf","oneOf","validateBoolean","getOwnPropertyValueOrDefault","allowArray","allowFunction","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validateAbortSignal","validateFunction","validatePlainFunction","validateUndefined","validateUnion","union","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","SymbolAsyncIterator","SymbolFor","kDestroyed","kIsErrored","kIsReadable","kIsDisturbed","kIsClosedPromise","kControllerErrorFunction","isReadableNodeStream","_obj$_readableState","isWritableNodeStream","_obj$_writableState","isDuplexNodeStream","isNodeStream","isWritableStream","isTransformStream","isWebStream","isIterable","isAsync","isDestroyed","wState","rState","isWritableEnded","isWritableFinished","isReadableEnded","isReadableFinished","isReadable","isWritable","isFinished","isWritableErrored","_stream$_writableStat","_stream$_writableStat2","isReadableErrored","_stream$_readableStat","_stream$_readableStat2","isClosed","isOutgoingMessage","isServerResponse","isServerRequest","_stream$req","willEmitClose","isDisturbed","_stream$kIsDisturbed","isErrored","_ref4","_ref5","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","utils","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","require$$3","Promise","PromisePrototypeThen","require$$4","_willEmitClose","require$$5","isRequest","nop","eos","_options$readable","_options$writable","eosWeb","readable","writable","onlegacyfinish","onfinish","writableFinished","readableFinished","onend","onerror","closed","onclose","errored","onclosed","onrequest","abort","endCallback","originalCallback","isAborted","resolverFn","finished","_opts","autoCleanup","endOfStreamModule","ERR_MULTIPLE_CALLBACK","kDestroy","kConstruct","checkError","destroy","_destroy","er","onDestroy","emitErrorCloseNT","emitCloseNT","emitErrorNT","undestroy","errorOrDestroy","sync","construct","constructNT","onConstruct","emitConstructNT","emitCloseLegacy","emitErrorCloseLegacy","destroyer","destroy_1","ReflectApply","receiver","ReflectOwnKeys","ProcessEmitWarning","warning","eventsModule","defaultMaxListeners","checkListener","_getMaxListeners","that","doError","arrayClone","_addListener","prepend","onceWrapper","_onceWrap","wrapped","originalListener","spliceOne","_listeners","unwrap","evlistener","unwrapListeners","listenerCount","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","ObjectSetPrototypeOf","Stream","dest","ondata","ondrain","didOnEnd","prependListener","legacy","onAbort","StringPrototypeSlice","TypedArrayPrototypeSet","Uint8Array","buffer_list","hasStrings","retLen","MathFloor","highWaterMarkFrom","isDuplex","duplexKey","getDefaultHighWaterMark","objectMode","getHighWaterMark","hwm","copyProps","SafeBuffer","isEncoding","_normalizeEncoding","enc","retried","nenc","string_decoder","StringDecoder","utf16Text","utf16End","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","utf8End","utf8Text","utf8CheckByte","utf8CheckIncomplete","utf8CheckExtraBytes","total","ERR_STREAM_NULL_VALUES","Readable","reading","hadError","hasThrow","from_1","ArrayPrototypeIndexOf","ObjectDefineProperties","ObjectKeys","SafeSet","ReadableState","addAbortSignal","require$$6","debug","require$$7","BufferList","require$$8","destroyImpl","require$$9","require$$10","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","require$$11","require$$12","kPaused","require$$13","require$$14","require$$15","maybeReadMore","readableAddChunk","addToFront","onEofChunk","addChunk","emitReadable","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","pipeOpts","endFn","unpipe","onunpipe","unpipeInfo","cleanedUp","pipeOnDrain","dests","ev","nReadingNextTick","updateReadableListening","resume","resume_","paused","streamKeys","streamToAsyncIterator","iter","createAsyncIterator","endReadableNT","endWritableNT","webStreamsAdapters","lazyWebStreams","readableStream","streamReadable","_src$readableObjectMo","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","Writable","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","onwrite","resetBuffer","clearBuffer","finishMaybe","_write","writeOrBuffer","doWrite","writev","onwriteError","errorBuffer","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","buffered","bufferedIndex","bufferedLength","chunks","needFinish","callFinal","onFinish","finish","prefinish","writableStream","streamWritable","ERR_INVALID_RETURN_VALUE","Duplex","createDeferredPromise","FunctionPrototypeCall","Duplexify","duplexify","_duplexify","final","fromAsyncGen","then","_promise","_resolve","onreadable","onfinished","ObjectGetOwnPropertyDescriptor","duplex","Transform","kCallback","readableHighWaterMark","PassThrough","ERR_MISSING_ARGS","writing","popCallback","streams","makeAsyncIterable","fromReadable","pumpToNode","onresolve","pumpToWeb","writer","pipeline","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","isLastStream","_ret","_ret2","toRead","pipe","ended","pipeline_1","compose","orgStreams","tail","kWeakHandler","staticCompose","addAbortSignalNoValidate","ArrayPrototypePush","Number","PromiseReject","kEmpty","kEof","composedStream","concurrency","_options$signal","_options$signal2","signalOpt","onDone","pump","_val","_options$signal3","asIndexedPairs","_options$signal4","some","unused","every","forEachFn","filterFn","ReduceAwareErrMissingArgs","reduce","_options$signal5","hasInitialValue","gotAnyItemFromStream","_options$signal6","_options$signal7","flatMap","toIntegerOrInfinity","drop","_options$signal8","_options$signal9","_options$signal10","_options$signal11","operators","ArrayPrototypePop","lastArg","customPromisify","streamReturningOperators","promiseReturningOperators","ERR_ILLEGAL_CONSTRUCTOR","streamModule","require$$16","require$$17","CustomStream","originalDestroy","fastSafeStringify","deterministicStringify","LIMIT_REPLACE_NODE","CIRCULAR_REPLACE_NODE","replacerStack","spacer","decirc","replaceGetterValues","setReplace","propertyDescriptor","edgeIndex","depth","compareFunction","deterministicDecirc","chunkQVEKZRZ2","_nullishCoalesce","lhs","rhsFn","isNullOrUndefined","isObject","hasProperty","objectToCheck","getKnownPropertyNames","JsonSize","JsonSize2","ESCAPE_CHARACTERS_REGEXP","isASCII","calculateStringSize","calculateNumberSize","ErrorWithCause","findCauseByReference","currentErr","getErrorCause","causeResult","_stackWithCauses","stackWithCauses","_messageWithCauses","skipIfVErrorStyleCause","messageWithCauses","ponyCause","chunkIZC266HS","_chunkQVEKZRZ2js","_ponycause","isErrorWithCode","isErrorWithMessage","isErrorWithStack","getErrorMessage","wrapError","originalError","StructError","failure","failures","explanation","shiftIterator","toFailure","branch","refinement","toFailures","coerce","mask","ts","Struct","schema","validator","refiner","coercer","is","validate","tuples","tuple","Structs","isType","schemas","define","deprecated","lazy","omit","subschema","optional","pick","any","bigint","boolean","date","enums","Class","intersection","literal","constant","Key","Value","never","nullable","knowns","Never","unknowns","regexp","coerced","unknown","defaulted","changed","trimmed","empty","refine","threshold","exclusive","nonempty","chunk6ZDHSOUV","_optionalChain","ops","lastAccessLHS","_chunkIZC266HSjs","_superstruct","isConstructable","_2","_3","getErrorMessageWithoutTrailingPeriod","getError","ErrorWrapper","AssertionError","assertStruct","errorPrefix","assertExhaustive","_object","assertNumber","encode","decode","digits","letter","bits","chr","convertRadix","carry","digit","digitBase","gcd","radix2carry","convertRadix2","radix","radix2","revPadding","unsafeWrapper","checksum","newChecksum","oldChecksum","genBase58","abc","XMR_BLOCK_LEN","base58check","sha256","BECH_ALPHABET","POLYMOD_GENERATORS","bech32Polymod","pre","chk","bechChecksum","words","encodingConst","genBech32","ENCODING_CONST","_words","fromWords","toWords","fromWordsUnsafe","actualLength","lowered","sepIndex","decodeUnsafe","decodeToBytes","CODERS","coderTypeError","bytesToString","chunkQEPVHEP7","_chunk6ZDHSOUVjs","_sha3","_base","HEX_MINIMUM_NUMBER_CHARACTER","HEX_MAXIMUM_NUMBER_CHARACTER","HEX_CHARACTER_OFFSET","getPrecomputedHexValuesBuilder","lookupTable","getPrecomputedHexValues","isBytes","assertIsBytes","hexadecimal","add0x","bytesToBigInt","bytesToSignedBigInt","bytesToNumber","bytesToBase64","assertIsHexString","strippedValue","remove0x","normalizedValue","c1","c2","n1","n2","bigIntToBytes","bigIntFits","signedBigIntToBytes","numberValue","valueToBytes","normalizedValues","createDataView","HexStruct","StrictHexStruct","HexAddressStruct","HexChecksumAddressStruct","isHexString","isStrictHexString","assertIsStrictHexString","isValidHexAddress","possibleAddress","isValidChecksumAddress","getChecksumAddress","unPrefixed","unPrefixedHash","nibbleIndex","hashCharacter","possibleChecksum","chunkVFXTVNXN","_chunkQEPVHEP7js","bigIntToHex","chunk4RMX5YWE","Duration","Duration2","isNonNegativeInteger","assertIsNonNegativeInteger","inMilliseconds","timeSince","timestamp","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","constants","define_process_env_default","safeRe","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","createToken","isGlobal","safe","looseOption","emptyOpts","parseOptions","parseOptions_1","numeric","compareIdentifiers","anum","bnum","rcompareIdentifiers","identifiers","SemVer$d","SemVer","release","identifierBase","prerelease","semver","throwErrors","parse_1","valid_1","clean","clean_1","inc","inc_1","version1","version2","v1","v2","comparison","v1Higher","highVersion","lowVersion","highHasPre","diff_1","major","loose","major_1","minor","minor_1","patch","patch_1","prerelease_1","compare_1","rcompare","rcompare_1","compareLoose","compareLoose_1","compareBuild","versionA","versionB","compareBuild_1","sort_1","rsort","rsort_1","gt","gt_1","lt","lt_1","eq","eq_1","neq","neq_1","gte","gte_1","lte","lte_1","cmp","cmp_1","coerce_1","Yallist","walker","yallist","Node","push","unshift","thisp","initial","deleteCount","insert","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","mL","allowStale","mA","lC","hit","forEachStep","now","del","get","expiresAt","doUse","lruCache","Range","Comparator","isNullSet","isAny","comps","memoKey","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","hr","hyphenReplace","comparatorTrimReplace","tildeTrimReplace","caretTrimReplace","rangeList","comp","parseComparator","replaceGTE0","rangeMap","comparators","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","LRU","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","replaceCaret","replaceXRange","gtlt","xM","xm","xp","anyX","incPr","$0","fM","fm","fp","fpr","tM","tm","tp","tpr","allowed","ANY","comparator","satisfies","satisfies_1","toComparators","toComparators_1","maxSatisfying","versions","maxSV","rangeObj","maxSatisfying_1","minSatisfying","minSV","minSatisfying_1","minVersion","minver","setMin","compver","minVersion_1","validRange","outside","hilo","gtfn","ltefn","ltfn","ecomp","high","outside_1","gtr","gtr_1","ltr","ltr_1","intersects","r1","r2","intersects_1","simplify","ranges","simplified","subset","dom","sawNonNull","OUTER","simpleSub","simpleDom","isSub","simpleSubset","minimumVersionWithPreRelease","minimumVersion","eqSet","higherGT","lowerLT","gtltComp","higher","lower","hasDomLT","hasDomGT","needDomLTPre","needDomGTPre","subset_1","internalRe","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","simplifyRange","require$$39","require$$40","chunk4D6XQBHA","_semver","VersionStruct","VersionRangeStruct","isValidSemVerVersion","isValidSemVerRange","versionRange","assertIsSemVerVersion","assertIsSemVerRange","gtVersion","gtRange","satisfiesVersionRange","chunkOLLG4H35","hasOptional","exactOptional","finiteNumber","UnsafeJsonStruct","JsonStruct","propKey","propValue","isValidJson","getSafeJson","getJsonSize","jsonrpc2","JsonRpcVersionStruct","JsonRpcIdStruct","JsonRpcErrorStruct","JsonRpcParamsStruct","JsonRpcRequestStruct","JsonRpcNotificationStruct","isJsonRpcNotification","assertIsJsonRpcNotification","isJsonRpcRequest","assertIsJsonRpcRequest","PendingJsonRpcResponseStruct","JsonRpcSuccessStruct","JsonRpcFailureStruct","JsonRpcResponseStruct","isPendingJsonRpcResponse","assertIsPendingJsonRpcResponse","isJsonRpcResponse","assertIsJsonRpcResponse","isJsonRpcSuccess","assertIsJsonRpcSuccess","isJsonRpcFailure","assertIsJsonRpcFailure","isJsonRpcError","assertIsJsonRpcError","getJsonRpcIdValidator","permitEmptyString","permitFractions","permitNull","ms","fmtLong","fmtShort","msAbs","plural","isPlural","env","createDebug","disable","enable","selectColor","prevTime","enableOverride","namespacesCache","enabledCache","formatter","newDebug","namespaces","toNamespace","common","chunk2LBGT4GH","_interopRequireDefault","_debug","_debug2","globalLogger","createProjectLogger","projectName","createModuleLogger","projectLogger","moduleName","chunkU7ZUGCE7","CAIP_CHAIN_ID_REGEX","CAIP_NAMESPACE_REGEX","CAIP_REFERENCE_REGEX","CAIP_ACCOUNT_ID_REGEX","CAIP_ACCOUNT_ADDRESS_REGEX","CaipChainIdStruct","CaipNamespaceStruct","CaipReferenceStruct","CaipAccountIdStruct","CaipAccountAddressStruct","isCaipChainId","isCaipNamespace","isCaipReference","isCaipAccountId","isCaipAccountAddress","parseCaipChainId","caipChainId","parseCaipAccountId","caipAccountId","chunk6NZW4WK4","paddingRequired","characterSet","letters","chunkE4C7EW4R","_chunk6NZW4WK4js","ChecksumStruct","chunkDHVKFDHQ","NumberLikeStruct","NumberCoercer","BigIntCoercer","BytesCoercer","HexCoercer","createNumber","createBigInt","createBytes","createHex","chunk3W5G4CYI","chunkZ2RGWDD7","_chunk3W5G4CYIjs","_map","FrozenMap","callbackfn","_map2","_set","FrozenSet","_set2","dist","_chunkVFXTVNXNjs","_chunk4RMX5YWEjs","_chunk4D6XQBHAjs","_chunkOLLG4H35js","_chunk2LBGT4GHjs","_chunkU7ZUGCE7js","_chunkE4C7EW4Rjs","_chunkDHVKFDHQjs","_chunkZ2RGWDD7js","errorConstants","utils_1","error_constants_1","FALLBACK_ERROR_CODE","FALLBACK_MESSAGE","FALLBACK_ERROR","getMessageFromCode","fallbackMessage","isValidCode","codeString","isJsonRpcServerError","serializeError","fallbackError","shouldIncludeStack","buildError","serializeCause","serializeObject","__importDefault","this","mod","fast_safe_stringify_1","utils_2","JsonRpcError","EthereumProviderError","isValidEthProviderCode","classes_1","getJsonRpcError","getEthProviderError","parseOpts","errors_1","wrappy_1","wrappy","wrapper","onceModule","onceStrict","isChildProcess","ws","rs","onexit","exitCode","onclosenexttick","endOfStream","ancient","isFn","isFS","destroyed","pump_1","safeApply","SafeEventEmitter","SerializableError","createScaffoldMiddleware","req","createAsyncMiddleware","asyncMiddleware","resolveNextPromise","nextPromise","returnHandlerCallback","nextWasCalled","asyncNext","runReturnHandlersCallback","JRPCEngine","middlewareStack","returnHandlers","isComplete","returnHandler","_req","middlewareError","handlerCallback","reqs","responses","_err","callerReq","_objectSpread","mergeMiddleware","engine","providerFromEngine","_res$error","_res$error2","rpcErrors","padString_1","padString","segmentLength","stringLength","padLength","paddedStringLength","base64url_1","pad_string_1","fromBase64","base64url","toBase64","toBuffer","TORUS_LEGACY_NETWORK","TORUS_SAPPHIRE_NETWORK","base64urlLib","safebtoa","safeatob","base64toJSON","b64str","jsonToBase64","storageAvailable","storageExists","storageLength","MemoryStore","BrowserStorage","storageKey","currStore","UX_MODE","OPENLOGIN_NETWORK","SUPPORTED_KEY_CURVES","LOGIN_PROVIDER","MFA_LEVELS","OPENLOGIN_ACTIONS","BUILD_ENV","LANGUAGES","THEME_MODES","MFA_FACTOR","fixProto","fixStack","captureStackTrace","_extendStatics","CustomError","_newTarget","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","proxyTag","regexpTag","setTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","apply","baseTimes","iteratee","baseUnary","overArg","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","objectCtorString","reIsNative","getPrototype","objectCreate","propertyIsEnumerable","splice","symToStringTag","getNative","nativeIsBuffer","nativeMax","nativeNow","Map","nativeCreate","baseCreate","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isBuffer","isTypedArray","skipIndexes","isIndex","assignMergeValue","baseAssignValue","assignValue","objValue","baseFor","createBaseFor","baseGetTag","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","isMasked","isFunction","toSource","baseIsTypedArray","isLength","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","baseMergeDeep","safeGet","keysIn","mergeFunc","stacked","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","toPlainObject","initCloneObject","baseRest","setToString","overRest","baseSetToString","isDeep","cloneArrayBuffer","arrayBuffer","typedArray","copyObject","isNew","createAssigner","assigner","guard","isIterateeCall","fromRight","keysFunc","isKeyable","isOwn","unmasked","isArrayLike","Ctor","otherArgs","shortOut","lastCalled","stamp","stubFalse","undefinedType","isIE","logMethods","bindMethod","traceForIE","realMethod","replaceLoggingMethods","loggerName","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","defaultLevel","factory","currentLevel","persistLevelIfPossible","levelNum","levelName","getPersistedLevel","storedLevel","cookie","clearPersistedLevel","initialLevel","_loggersByName","_log","logLevel","levels","apiKey","gatewayAuthHeader","setAPIKey","apiKey_","setLogLevel","fetchAndTrace","init","_url","getApiKeyHeaders","debugLogResponse","logTracingHeader","promiseTimeout","customOptions","responseContentType","put","InvalidTokenError","b64DecodeUnicode","base64UrlDecode","jwtDecode","CHAIN_NAMESPACES","ADAPTER_NAMESPACES","getDefaultNetworkId","chainNamespace","getEvmChainConfig","getSolanaChainConfig","getChainConfig","finalChainId","Web3AuthError","WalletInitializationError","extraMessage","WalletLoginError","WalletOperationsError","WalletProviderError","MULTI_CHAIN_ADAPTERS","SOLANA_ADAPTERS","EVM_ADAPTERS","WALLET_ADAPTERS","ADAPTER_NAMES","WEB3AUTH_NETWORK","ADAPTER_CATEGORY","ADAPTER_STATUS","ADAPTER_EVENTS","BaseAdapter","customChainConfig","defaultChainConfig","finalChainConfig","chainConfig","currentConfig","BaseNetworkSwitch","authServer","loglevel","isHexStrict","checkIfTokenIsExpired","signChallenge","verifySignedChallenge","signedMessage","challenge","issuer","sessionTime","clientId","web3AuthNetwork","sigData","idTokenRes","getSavedToken","userAddress","saveToken","clearToken","PROVIDER_EVENTS","bool","u8","nextTick","asyncLoop","iters","tick","checkOpts","wrapConstructorWithOpts","setBigUint64","view","_u32_max","SHA2","padOffset","dataView","oview","outLen","Chi","Maj","SHA256_K","IV","SHA256_W","W15","W2","s0","s1","sigma1","T1","T2","SHA256","SHA224","_3n","_4n","_5n","_8n","pow","power","modulo","pow2","invert","tonelliShanks","legendreC","p1div4","Fp","Q1div2","t2","FpSqrt","nv","FIELD_FIELDS","validateField","FpPow","FpInvertBatch","nums","lastMultiplied","inverted","nLength","nBitLength","_nBitLength","nByteLength","Field","ORDER","redef","BITS","BYTES","sqrtP","rhs","hashToPrivateScalar","groupOrder","wNAF","constTimeNegate","neg","windows","windowSize","elm","window","precomputes","maxNumber","shiftBy","wbits","offset1","offset2","cond1","cond2","precomputesMap","validateBasic","curve","validatePointOpts","ut.validateObject","endo","b2n","h2b","ut","DER","sBytes","rBytesLeft","sig","shl","rhl","weierstrassPoints","CURVE","point","isCompressed","ut.concatBytes","fromBytes","weierstrassEquation","x2","x3","isWithinCurveOrder","assertGE","normPrivateKeyToScalar","wrapPrivateKey","ut.bytesToHex","ut.bytesToNumberBE","mod.mod","pointPrecomputes","assertPrjPoint","Point","pz","is0","toInv","privateKey","X1","Y1","Z1","X2","Y2","Z2","U1","U2","b3","X3","Y3","Z3","t0","t1","t3","t4","t5","wnaf","k1neg","k1","k2neg","k2","k1p","k2p","scalar","fake","f1p","f2p","iz","ax","ay","zz","cofactor","isTorsionFree","clearCofactor","_bits","validateOpts","weierstrass","curveDef","CURVE_ORDER","compressedLen","uncompressedLen","isValidFieldElement","modN","invN","mod.invert","cat","y2","isYOdd","numToNByteStr","ut.numberToBytesBE","isBiggerThanHalfOrder","HALF","normalizeS","slcNum","Signature","recovery","msgHash","rec","bits2int_modN","radj","ir","u1","u2","ut.hexToBytes","rand","mod.hashToPrivateScalar","getPublicKey","isProbPub","getSharedSecret","privateA","publicB","bits2int","ORDER_MASK","ut.bitMask","int2octets","prepSig","defaultSigOpts","lowS","prehash","ent","h1int","seedArgs","k2sig","kBytes","normS","defaultVerOpts","sign","privKey","ut.createHmacDrbg","verify","publicKey","_sig","derError","SWUFpSqrtRatio","_2n_pow_c1_1","_2n_pow_c1","c3","c4","c5","c6","c7","sqrtRatio","tv1","tv2","tv3","tv5","tv4","isQR","tvv5","e1","y1","mapToCurveSimpleSWU","mod.validateField","tv6","isValid","validateDST","os2ip","i2osp","strxor","isNum","expand_message_xmd","DST","lenInBytes","b_in_bytes","r_in_bytes","ell","DST_prime","Z_pad","l_i_b_str","b_0","expand_message_xof","dkLen","hash_to_field","expand","_DST","log2p","len_in_bytes","prb","elm_offset","tv","isogenyMap","COEFF","xNum","xDen","yNum","yDen","createHasher","mapToCurve","u0","HMAC","oHash","iHash","hmac","getHash","msgs","createCurve","defHash","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b6","b9","b11","b22","b44","b88","b176","b220","b223","secp256k1","POW_2_128","TAGGED_HASH_PREFIXES","taggedHash","messages","tagP","tagH","pointToBytes","numTo32b","modP","GmulAdd","schnorrGetExtPubKey","priv","d_","lift_x","xx","schnorrGetPublicKey","schnorrSign","auxRand","k_","rx","schnorrVerify","pub","schnorr","isoMap","mapSWU","htf","scalars","hashToCurve","encodeToCurve","sliced","_hexToBytes","equalsBytes","wrapHash","webCrypto","nodeRequire","isHexPrefixed","stripHexPrefix","padToEven","assertIsString","BIGINT_0","unprefixedHexToBytes","inp","_unprefixedHexToBytes","hexByByte","BIGINT_CACHE","byteLen","intToHex","intToBytes","zeros","setLength","setLengthLeft","stripZeros","unpadBytes","fromSigned","toUnsigned","addHexPrefix","validateNoLeadingZeroes","bigIntToUnpaddedBytes","MAX_UINT64","MAX_INTEGER","SECP256K1_ORDER_DIV_2","KECCAK256_NULL_S","KECCAK256_RLP_ARRAY_S","KECCAK256_RLP_S","BIGINT_1","BIGINT_2","BIGINT_8","BIGINT_27","outputLength","encodeLength","inputBuf","safeSlice","decodeLength","parseHexByte","hexLength","lLength","inputBytes","_decode","llength","innerRemainder","totalLength","cachedHexes","uint8a","utf","RLP","keccak224","keccak384","keccak512","KeyEncoding","ValueEncoding","TypeOutput","toType","outputType","bigInt","ecsign","calculateSigRecovery","isValidSigRecovery","ecrecover","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","POWS_TEN","SQRT_BASE","clone","configObject","div","convertBase","parseNumeric","BigNumber","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","ALPHABET","alphabetHasNormalDecimalDigits","caseChanged","intCheck","maxOrMin","pow2_53","random53bitInt","dp","decimal","toBaseOut","baseIn","baseOut","arrL","callerIsToString","rm","toFixedPoint","coeffToString","temp","xlo","xhi","klo","khi","aL","bL","subtract","more","prod","prodL","remL","rem0","xL","yc0","yL","yz","bitFloor","c0","toExponential","normalise","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","pows10","half","isModExp","nIsBig","nIsNeg","nIsOdd","isOdd","xLTy","xcL","ycL","ylo","yhi","sqrtBase","rep","g1","g2","groupSeparator","intPart","fractionPart","isNeg","intDigits","d0","d1","d2","exp","n0","zs","BROWSER_ALIASES_MAP","BROWSER_MAP","PLATFORMS_MAP","OS_MAP","ENGINE_MAP","Utils","_const","isLoose","versionAPrecision","versionBPrecision","precision","lastPrecision","_version","assigners","browserName","browserAlias","commonVersionIdentifier","browsersList","parser","notLikeAndroid","butAndroid","regexpWithoutDeviceSpec","regexpWithDeviceSpec","osParsersList","versionName","os","platformParsersList","model","iDevice","likeIDevice","osMajorVersion","enginesParsersList","isGecko","likeGecko","Parser","UA","skipParsing","browserDescriptor","browserParsersList","_browser","toLowerCase","_os","_platform","_engine","checkTree","platformsAndOSes","platformsAndOSCounter","browsers","browsersCounter","currentDefinition","platformsAndOSNames","OSMatchingDefinition","osResult","platformMatchingDefinition","platformResult","browserNames","matchingDefinition","includingAlias","defaultBrowserName","browserNameLower","expectedResults","comparableVersion","currentBrowserVersion","osName","platformType","engineName","anything","anythings","Bowser","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","isView","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","TEXT_ENCODER","encodePacketToBinary","chars","bufferLength","encoded1","encoded2","encoded3","encoded4","arraybuffer","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","SEPARATOR","encodePayload","packets","encodedPackets","decodePayload","encodedPayload","decodedPacket","createPacketEncoderStream","payloadLength","header","TEXT_DECODER","concatChunks","createPacketDecoderStream","maxPayload","isBinary","headerArray","Emitter","mixin","on","globalThisShim","attr","NATIVE_SET_TIMEOUT","globalThis","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","BASE64_OVERHEAD","utf8Length","qs","qry","TransportError","Transport","onPause","hostname","encodedQuery","yeast","hasCORS","XHR","xdomain","hasXHR2","XMLHttpRequest","Polling","isSSL","forceBase64","Request","xhrStatus","xhr","unloadHandler","terminationEvent","setTimeoutFn","usingBrowserWebSocket","defaultBinaryType","isReactNative","WS","protocols","closeEvent","lastPacket","WT","decoderStream","encoderStream","pathNames","regx","$1","$2","Socket","failed","onTransportOpen","freezeTransport","onTransportClose","onupgrade","payloadSize","cleanupAndClose","waitForUpgrade","upgrades","filteredUpgrades","loc","withNativeFile","hasBinary","toJSON","deconstructPacket","buffers","packetData","_deconstructPacket","placeholder","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","deconstruction","Decoder","reviver","isBinaryEvent","BinaryReconstructor","binData","io","nsp","ack","isTransportWritable","withErr","responseArgs","force","sent","pid","subDestroy","compress","Backoff","deviation","jitter","Manager","_parser","Engine","openSubDestroy","errorSub","nsps","attempt","sameNamespace","newConnection","MAX_BYTES","MAX_UINT32","oldBrowser","generated","inherits_browserModule","superCtor","TempCtor","streamBrowser","shams","symObj","symVal","syms","origSymbol","hasSymbolSham","$Object","hasProto","ERROR_MESSAGE","toStr","funcType","concatty","slicy","arrLike","joiny","joiner","implementation","bound","binder","boundLength","boundArgs","Empty","functionBind","bind","undefined","$SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","getProto","needsEval","TypedArray","INTRINSICS","errorProto","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","getIntrinsic","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","GetIntrinsic","$defineProperty","hasPropertyDescriptors","hasPropertyDescriptors_1","gopd","defineDataProperty","nonEnumerable","nonWritable","nonConfigurable","hasDescriptors","gOPD","$floor","setFunctionLength","functionLengthIsConfigurable","functionLengthIsWritable","$apply","$call","$reflectApply","$max","applyBind","callBind","$indexOf","callBound","hasToStringTag","$toString","isStandardArguments","isLegacyArguments","supportsStandardArguments","isFnRegex","getGeneratorFunc","GeneratorFunction","isGeneratorFunction","generatorFunc","reflectApply","badArrayLike","isCallableMarker","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","objectClass","fnClass","genClass","ddaClass","ddaClass2","ddaClass3","isIE68","isDDA","isCallable","strClass","forEachArray","forEachString","forEachObject","forEach_1","possibleNames","availableTypedArrays","typedArrays","$slice","superProto","tryTypedArrays","trySlices","whichTypedArray","toStrTags","anyTrue","isArgumentsObject","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isPromise","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMapToString","isSetToString","isSet","isWeakMapToString","isWeakMap","isWeakSetToString","isWeakSet","isArrayBufferToString","isArrayBuffer","isDataViewToString","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isBoxedPrimitive","isAnyArrayBuffer","isBufferBrowser","enumerableOnly","symbols","_classCallCheck","_require","_require2","copyBuffer","readableDestroyed","writableDestroyed","emitErrorAndCloseNT","_inheritsLoose","subClass","superClass","createErrorType","_Base","thing","startsWith","this_len","includes","determiner","errorsBrowser","ERR_INVALID_OPT_VALUE","deprecate","warned","_stream_writable","CorkedRequest","onCorkedFinish","internalUtil","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","_require$codes","realHasInstance","writeAfterEnd","validChunk","isBuf","decodeChunk","newChunk","onwriteStateUpdate","onwriteDrain","holder","allBuffers","endWritable","need","corkReq","objectKeys","_stream_duplex","onEndNT","writableEnded","readableEnded","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","createReadableStreamAsyncIterator","_Object$create","async_iterator","fromBrowser","_stream_readable","EElistenerCount","debugUtil","kProxyEvents","skipChunkCheck","chunkInvalid","doEnd","indexOf","_stream_transform","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","err2","_stream_passthrough","inherits","throwIfNotStringOrBuffer","HashBase","blockSize","digest","hashBase","ARRAY16","MD5","fnF","fnG","fnH","fnI","rotl","md5_js","zl","zr","sr","RIPEMD160","br","cr","dr","tr","fn1","fn5","fn2","fn4","fn3","ripemd160","finalSize","accum","remainder","lowBits","highBits","Sha","rotl5","rotl30","ft","sha","Sha1","rotl1","sha1","Sha256","maj","sigma0","gamma0","gamma1","Sha224","sha224","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","gamma0l","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","sha512","SHA512","Sha384","sha384","sha_jsModule","algorithm","Algorithm","streamBrowserify","CipherBase","hashMode","inputEnc","outputEnc","outData","fin","cipherBase","alg","ZEROS","blocksize","Hmac","ipad","opad","md5","Legacy","algos","MAX_ALLOC","precondition","iterations","keylen","defaultEncoding","pVersionMajor","defaultEncoding_1","checkParameters","saltLen","getDigest","ipad1","shaFunc","rmd160Func","pbkdf2","password","salt","DK","block1","destPos","hLen","syncBrowser","ZERO_BUF","subtle","toBrowser","checks","checkNative","algo","prom","browserPbkdf2","getNextTick","resolvePromise","async","resp","off","inL","inR","outL","outR","pc2table","sTable","permuteTable","minimalisticAssert","Cipher","cipher","inputOff","outputOff","DESState","DES","des","shiftTable","kL","kR","inOff","outOff","lStart","rStart","keyL","keyR","CBCState","iv","instantiate","CBC","cbc","EDEState","k3","EDE","ede","modes","browserifyDes","modeName","mode","ecb","bufferXor","xor","encryptStart","decrypt","cfb","encryptByte","byteParam","cfb8","bit","shiftIn","cfb1","ofb","incr32","incr32_1","ctr","chunkNum","modeModules","modes_1","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s2","s3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","x4","x8","AES","keyWords","keySize","ksRows","invKeySchedule","ksR","m1","aes","ZEROES","fromArray","GHASH","lsbVi","abl","ghash","xorTest","calcIv","toPad","ivBits","StreamCipher","rump","authCipher","streamCipher","EVP_BytesToKey","keyBits","ivLen","keyLen","used","keyStart","ivStart","evp_bytestokey","MODES","AuthCipher","ebtk","Splitter","PADDING","setTo","padBuff","createCipheriv","suite","createCipher","encrypter","Decipher","unpad","autoPadding","padded","createDecipheriv","createDecipher","decrypter","ciphers","deciphers","getCiphers","aesModes","desModes","BN","endian","parseHex4Bits","lowerBound","parseLength","parseBase","limbLen","limbPow","groupSizes","groupBases","groupSize","groupBase","ArrayType","reqLength","toBitArray","wbit","bytesNeeded","bitsLeft","smallMulTo","ncarry","rword","maxJ","comb10MulTo","mid","a0","al0","ah0","al1","ah1","al2","ah2","al3","ah3","al4","ah4","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","bl9","bh9","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ro","odd","rwst","iwst","nrws","nrwst","niwst","rmws","carryMask","newCarry","maskedWords","bhi","bhiBits","dm","yp","im","jm","x1","Red","primes","MPrime","rlen","K256","P224","P192","P25519","prime","mod3","one","nOne","lpow","inv","wnd","currentLen","Mont","brorandModule","Rand","bn","brorand","MillerRabin","min_bytes","stop","red","rone","rn1","generatePrime","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","sqrt","SEVEN","DH","setPublicKey","setPrivateKey","primeCache","checkPrime","malleable","front","formatReturnValue","getDiffieHellman","ENCODINGS","createDiffieHellman","genc","allocate","postfix","isNegNum","blind","getr","blinder","crt","blinds","blinded","qinv","m2","browserifyRsa","zero2","minAssert","minUtils","getNAF","naf","getJSF","jsf","m8","m14","m24","cachedProperty","computer","parseBytes","intFromLE","BaseCurve","conf","adjustCount","doubles","repr","nafW","nafPoints","defW","coeffs","jacobianResult","wndWidth","comb","zero","BasePoint","precomputed","dbl","ShortCurve","short","beta","lambda","betas","lambdas","basis","vec","tinv","ntinv","l1","l2","aprxSqrt","prevR","len1","q1","q2","npoints","ncoeffs","isRed","endoMul","obj2point","nx","ny","ys1","dyinv","_precompute","negate","JPoint","zinv","zinv2","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","yy","yyyy","yyyy8","c8","gamma","beta4","beta8","ggamma8","jy2","jxd4","jyd8","mm","yyu4","kbase","z3","pz3","MontCurve","mont","EdwardsCurve","edwards","nt","isSurrogatePair","htonl","toHex32","zero8","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","BlockHash","ft_1","ch32","p32","maj32","s0_256","s1_256","g0_256","g1_256","shaCommon","sha1_K","SHA1","_1","sha256_K","_256","_224","sha512_K","_512","c0_hi","g1_512_hi","c0_lo","g1_512_lo","c1_hi","c1_lo","c2_hi","g0_512_hi","c2_lo","g0_512_lo","c3_hi","c3_lo","s1_512_hi","s1_512_lo","ch64_hi","ch64_lo","c4_hi","c4_lo","T1_hi","T1_lo","s0_512_hi","s0_512_lo","maj64_hi","maj64_lo","T2_hi","T2_lo","yl","SHA384","_384","ripemd","curves","PresetCurve","defineCurve","HmacDRBG","entropy","pers","hmacDrbg","kmac","entropyEnc","addEnc","KeyPair","Position","getLength","octetLen","rmPadding","slen","constructLength","octets","backHalf","EC","drbg","ns2","truncOnly","bkey","ns1","kp","kpX","recoveryParam","sinv","isSecondKey","rInv","Qprime","eddsa","lastIx","EDDSA","Rencoded","s_","SG","RplusAh","normed","xIsOdd","elliptic","safer","Safer","safer_1","Reporter","reporter","ReporterError","elem","DecoderBuffer","save","fail","EncoderBuffer","tags","methods","overrided","stateProps","cstate","newKey","present","prevKey","prevObj","explicit","entity","primitive","cls","reverse","der","DEREncoder","DERNode","der_1","encodedTag","encodeTag","lenOctets","relative","ident","objid","two","numArray","dataBuffer","PEMEncoder","pem","encoders","bignum","DERDecoder","decodedTag","derDecodeTag","derDecodeLen","possibleEnd","raw","numstr","printstr","subident","year","mon","day","hour","sec","oct","tagStr","PEMDecoder","decoders","api","Entity","Generated","asn1","asn","Time","AttributeTypeValue","AlgorithmIdentifier","SubjectPublicKeyInfo","RelativeDistinguishedName","RDNSequence","Name","Validity","Extension","TBSCertificate","X509Certificate","certificate","asn1_1","RSAPrivateKey","RSAPublicKey","PublicKey","PrivateKeyInfo","EncryptedPrivateKeyInfo","DSAPrivateKey","ECPrivateKey","ECParameters","findProc","startRegex","fullRegex","evp","fixProc","okey","decrypted","cipherText","cipherKey","match2","aesid","parseAsn1","parseKeys","stripped","ndata","createHmac","RSA_PKCS1_PADDING","signType","ecSign","dsaSign","curveId","kv","getKey","makeKey","makeR","toDER","hlen","hbits","bits2octets","obits","signModule","ecVerify","dsaVerify","padNum","pubkey","unpacked","checkValue","montp","verify_1","createHash","algorithms","Sign","Verify","sigBuffer","createSign","createVerify","ECDH","aliases","inenc","otherPub","_priv","mgf","i2ops","withPublic","paddedMsg","withPublic_1","publicEncrypt","oaep","pkcs1","hLen2","ps","dblen","maskedDb","maskedSeed","nonZero","cur","privateDecrypt","zBuffer","dif","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","randomFill","randomFillSync","actualFill","ourBuf","uint","cryptoBrowserify","algoKeys","ec$1","browserCrypto","EC_GROUP_ORDER","ZERO32","isScalar","isValidPrivateKey","equalConstTime","nodeCrypto","getAes","importAlgorithm","cryptoKey","encAlgorithm","firstChunk","secondChunk","decipher","aesCbcEncrypt","aesCbcDecrypt","hmacSha256Sign","hmacSha256Verify","expectedSig","generatePrivate","getPublic","derive","privateKeyA","publicKeyB","keyA","keyB","Px","deriveUnpadded","derivePadded","encrypt","publicKeyTo","ephemPrivateKey","ephemPublicKey","encryptionKey","macKey","ciphertext","dataToMac","mac","_padding","macGood","at","escapee","text","uffff","white","escapable","meta","mind","jsonify","isArgs","keysShim","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","isString","theKeys","skipProto","skipConstructor","origKeys","originalKeys","keysWorksWithArguments","keccak256$1","encParamsHexToBuf","encParamsHex","encParamsBufToHex","encParams","encryptData","privKeyHex","serializedDec","serializedBuf","decryptData","keyPair","VERSION","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","NAN","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","domExcTag","promiseTag","symbolTag","weakSetTag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsOctal","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","templateCounter","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","nodeIsRegExp","nodeIsSet","arrayAggregator","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","eachFunc","baseFindIndex","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseToPairs","baseTrim","trimmedEndIndex","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","Array","Date","Function","Math","Object","RegExp","TypeError","oldDash","spreadableSymbol","symIterator","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsFinite","nativeJoin","nativeKeys","nativeMin","nativeParseInt","nativeRandom","nativeReverse","DataView","Set","WeakMap","metaMap","realNames","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseLodash","chainAll","lazyClone","lazyReverse","lazyValue","isRight","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","computed","SetCache","setCacheAdd","setCacheHas","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","baseAggregator","baseEach","baseAssign","baseAssignIn","baseAt","paths","upper","baseClone","bitmask","isFlat","isFull","initCloneArray","getTag","isFunc","copySymbolsIn","copySymbols","initCloneByTag","subValue","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","setTimeout","baseDifference","valuesLength","valuesIndex","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","toInteger","toLength","baseFilter","baseFlatten","isStrict","isFlattenable","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGt","baseHas","baseHasIn","baseInRange","baseIntersection","othLength","othIndex","baseInverter","baseInvoke","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","baseIsRegExp","baseIsSet","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","baseLt","baseMap","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseNth","baseOrderBy","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","basePullAt","indexes","baseUnset","baseRange","baseRepeat","baseSample","baseSampleSize","baseSetData","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","castRest","castSlice","clearTimeout","cloneDataView","cloneRegExp","cloneSymbol","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","getSymbols","getSymbolsIn","createAggregator","initializer","createBind","isBind","createCtor","createCaseFirst","trailing","createCompounder","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","getFuncName","funcName","getData","isLaziable","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","createOver","arrayFunc","createPadding","charsLength","createPartial","createRange","toFinite","createRelationalOperation","toNumber","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","setWrapToString","createRound","createToPairs","createWrap","mergeData","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrStacked","othStacked","arrValue","othValue","compared","convert","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","otherFunc","stubArray","ctorString","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","isMaskable","memoizeCapped","srcBitmask","newBitmask","isCombo","oldArray","updateWrapDetails","difference","differenceBy","differenceWith","dropRight","dropRightWhile","dropWhile","findIndex","findLastIndex","flattenDeep","flattenDepth","fromPairs","mapped","intersectionBy","intersectionWith","lastIndexOf","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","takeRight","takeRightWhile","takeWhile","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","unzipWith","without","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","tap","interceptor","thru","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapperValue","countBy","findLast","flatMapDeep","flatMapDepth","forEachRight","groupBy","invokeMap","keyBy","orderBy","partition","reduceRight","sampleSize","shuffle","sortBy","after","bindKey","curry","curryRight","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","debounced","isInvoking","defer","memoized","overArgs","funcsLength","partialRight","rearg","unary","castArray","cloneWith","cloneDeepWith","conformsTo","isBoolean","isDate","isEqualWith","isFinite","isInteger","isMatch","isMatchWith","isNaN","isNumber","isNative","isNull","isNil","isRegExp","isSafeInteger","isUndefined","toSafeInteger","assignIn","assignInWith","assignWith","properties","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invertBy","invoke","mapKeys","mapValues","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","updateWith","valuesIn","clamp","inRange","random","camelCase","capitalize","upperFirst","escapeRegExp","kebabCase","lowerCase","lowerFirst","strLength","padStart","parseInt","repeat","snakeCase","startCase","template","imports","importsKeys","importsValues","isEscaping","isEvaluating","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","toLower","toUpper","trimEnd","trimStart","omission","substring","newEnd","unescape","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flowRight","matchesProperty","methodOf","noConflict","nthArg","over","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","augend","addend","ceil","divide","dividend","divisor","floor","maxBy","mean","meanBy","minBy","multiplier","multiplicand","minuend","subtrahend","sumBy","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","BaseController","filterNoop","internalEvents","externalEventFilter","getRawListeners","eventEmitter","createEventEmitterProxy","initialTarget","eventFilter","setTarget","newTarget","oldTarget","COMMUNICATION_NOTIFICATIONS","COMMUNICATION_JRPC_METHODS","PROVIDER_JRPC_METHODS","PROVIDER_NOTIFICATIONS","padWithZeroes","targetLength","concatSig","rSig","sSig","vSig","rStr","sStr","vStr","msgSig","RETRIABLE_ERRORS","checkForHttpErrors","fetchRes","parseResponse","createFetchConfigFromReq","rpcTarget","originHttpHeaderKey","parsedUrl","originDomain","serializedPayload","fetchParams","createFetchMiddleware","_next","fetchUrl","maxAttempts","retryInterval","fetchBody","errMsg","phrase","createLoggerMiddleware","jsonRpcRandomId","IdIterator","BaseProvider","_this$provider","_this$config$networks","createChainIdMiddleware","createProviderConfigMiddleware","providerConfig","createJsonRpcClient","fetchMiddleware","_class$1","CommonJRPCProvider","networkMiddleware","newChainId","providerErrors","providerFactory","_class","CommonPrivateKeyProvider","privKeyMiddleware","getPrivatekey","getPrivatekeyHandler","getCreateRandomId","PLUGIN_NAMESPACES","ADAPTER_CACHE_KEY","Web3AuthNoModal","_options$chainConfig","_options$chainConfig2","_options$chainConfig3","_options$chainConfig4","initPromises","adapterName","providedChainConfig","adapter","walletName","loginParams","plugin","walletAdapter","cachedAdapter","addMapEntry","addSetEntry","isHostObject","cloneMap","cloneFunc","cloneSet","voidElements","warn","alreadyWarned","warnOnce","loadedClb","i18n","loadNamespaces","ns","loadLanguages","lng","oldI18nextHasLoadedNamespace","fallbackLng","lastLng","loadNotPending","loadState","hasLoadedNamespace","i18nInstance","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","setDefaults","getDefaults","setI18n","getI18n","hasChildren","checkLength","getAsArray","hasValidReactChildren","nodesToString","i18nOptions","stringNode","childrenArray","keepArray","childIndex","childPropsCount","shouldKeepChild","childChildren","renderNodes","targetString","combinedTOpts","shouldUnescape","emptyChildrenButNeedsHandling","keep","childs","HTML","renderInner","rootReactNode","mappedChildren","mapAST","pushTranslatedJSX","mem","isVoid","reactNode","astNode","reactNodes","translationContent","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","wrapTextNodes","Trans","i18nKey","tOptions","components","i18nFromProps","tFromProps","additionalProps","reactI18nextOptions","nodeAsString","hashTransKey","interpolationOverride","translation","Componentized","useAsParent","initReactI18next","I18nContext","ReportNamespaces","i18nFromContext","defaultNSFromContext","TransWithoutContext","usePrevious","ignore","useTranslation","notReadyT","optsOrDefaultValue","retNotReady","useSuspense","keyPrefix","ready","getT","setT","joinedNS","previousJoinedNS","isMounted","bindI18n","bindI18nStore","boundReset","isInitial","I18nextProvider","defaultNS","useMemo","consoleLogger","concreteLogger","_len3","_key3","_len4","_key4","lvl","debugOnly","baseLogger","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","setPath","pushPath","getPath","getPathWithDefaults","defaultData","deepExtend","regexEscape","_entityMap","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","matched","deepFind","joinedPath","getCleanedCode","ResourceStore","ignoreJSONStructure","resources","deep","postProcessor","processors","translator","processor","checkedLoadedFor","Translator","services","wouldCheckForNsInKey","seemsNaturalLanguage","lastKey","returnDetails","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","resForMissing","updateMissing","lngs","fallbackLngs","send","specificDefaultValue","defaultForMissing","language","skipOnVariables","nestBef","nestAft","postProcess","postProcessorNames","exactUsedKey","usedLng","usedNS","needsZeroSuffixLookup","needsContextHandling","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","possibleKey","optionsKeys","useOptionsReplaceForData","option","LanguageUtil","specialCases","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","createRules","PluralResolver","languageUtils","pluralCategory1","pluralCategory2","pluralCategory","returnSuffix","deepFindWithDefaults","Interpolator","iOpts","regexpStr","regexpUnescapeStr","nestingRegexpStr","replaces","regexSafe","handleFormat","missingInterpolationHandler","todo","matchedVar","safeValue","clonedOptions","handleHasOptions","inheritedOptions","optionsString","matchedSingleQuotes","matchedDoubleQuotes","doReduce","parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","createCachedFormatter","Formatter","valOptions","removePending","backend","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","loaded","loadedKeys","fcName","tried","fallbackValue","isUpdate","clb","transformOptions","bindMemberFunctions","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","load","usedCallback","lngInLngs","setLngProps","setLng","fixedT","resultKey","preResult","preloaded","newLngs","rtlLngs","forkResourceStore","toggleSelection","deselectCurrent","clipboardToIE11Formatting","defaultMessage","copyKey","reselectPrevious","mark","successful","copyToClipboard","qrcode","typeNumber","errorCorrectionLevel","PAD0","PAD1","_typeNumber","_errorCorrectionLevel","QRErrorCorrectionLevel","_modules","_moduleCount","_dataCache","_dataList","makeImpl","maskPattern","moduleCount","modules","row","col","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","getBestMaskPattern","minLostPoint","lostPoint","QRUtil","bitIndex","byteIndex","maskFunc","rsBlocks","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","rsPoly","rawPoly","qrPolynomial","modPoly","modIndex","totalCodeCount","dataList","QRRSBlock","qrBitBuffer","totalDataCount","qrNumber","qrAlphaNum","qr8BitByte","qrKanji","cellSize","margin","qrHtml","qrSvg","rect","escapeXml","createDataURL","escaped","_createHalfASCII","blocks","blocksLastLineNoMargin","ascii","black","unicodeData","numChars","unicodeMap","bin","base64DecodeInputStream","unknownChar","QRMode","QRMaskPattern","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","errorCorrectLength","QRMath","sameCount","darkCount","ratio","EXP_TABLE","LOG_TABLE","_num","RS_BLOCK_TABLE","qrRSBlock","totalCount","dataCount","getRsBlockTable","rsBlock","_buffer","_length","bufIndex","_mode","strToNum","chatToNum","getCode","_bytes","byteArrayOutputStream","base64EncodeOutputStream","_buflen","_base64","writeEncoded","padlen","_str","_pos","gifImage","_width","_height","pixel","lzwMinCodeSize","raster","getLZWRaster","bitOutputStream","_out","_bitLength","_bitBuffer","clearCode","endCode","bitLength","lzwTable","byteOut","bitOut","dataIndex","_size","getPixel","gif","toUTF8Array","utf8","charcode","QRCode_1","qrGenerator","ReactDOM","QRCode","lineWidth","radii","rTopLeft","rTopRight","rBottomRight","rBottomLeft","radiiOuter","radiiInner","colorOuter","colorInner","zones","zone","pixelLength","dWidthLogo","dHeightLogo","dxLogo","dyLogo","logoImage","numberOfCellsMargin","firstRowOfLogo","firstColumnOfLogo","logoWidthInCells","logoHeightInCells","nextProps","ecLevel","enableCORS","bgColor","fgColor","logoOpacity","logoOnLoad","removeQrCodeBehindLogo","qrStyle","eyeRadius","eyeColor","logoPaddingStyle","quietZone","logoWidth","logoHeight","logoPadding","qrCode","canvas","canvasSize","scale","positioningZones","image_1","dWidthLogoPadding","dHeightLogoPadding","dxLogoPadding","dyLogoPadding","dxCenterLogoPadding","dyCenterLogoPadding","qrSize","capitalizeFirstLetter","OPENLOGIN_PROVIDERS","OPENLOGIN_PROVIDERS_NAMES","LOGIN_MODAL_EVENTS","MODAL_STATUS","DEFAULT_LOGO_LIGHT","DEFAULT_LOGO_DARK","WALLET_CONNECT_LOGO","styleInject","insertAt","css_248z$1","ThemedContext","en","CircleArrowLeft","Close","Connected","Expand","ExpandLight","InfoCircle","InfoCircleLight","icons","Icon","iconName","iconTitle","jsx","Image$1","hoverImageId","imageId","isButton","jsxs","closeIcon$1","DetailedLoader","appLogo","modalStatus","web3authIcon","providerIcon","isDefaultLogo","closeIcon","canEmit","WalletConnect","walletConnectUri","WalletConnect$1","memo","formatIOSMobile","encodedUri","formatMobileRegistryEntry","universalLink","deepLink","bowser","formatMobileRegistry","registry","ExternalWallet","hideExternalWallets","handleExternalWalletClick","showBackButton","wcAdapters","isLoaded","setIsLoaded","adapterVisibilityMap","setAdapterVisibilityMap","externalButtons","setExternalButtons","deviceType","deviceDetails","_config$walletConnect","walletConnectAdapterName","canShowMap","adapterConfig","buttons","mobileLinks","_window$ethereum","adapterBtns","button","_config$button$name","_config$button$name2","isBlock","Footer","privacyPolicy","tncLink","defaultLanguage","getPrivacyUrl","getTncUrl","Footer$1","Header","isDark","appName","headerLogo","memoizedHeader","getAdapterSocialLogins","loginMethodsConfig","finalLoginMethodsConfig","loginMethod","currentLoginMethodConfig","passwordlessBackendUrl","getUserCountry","validatePhoneNumber","phoneNumber","languageMap","getUserLanguage","userLanguage","SocialLoginPasswordless","handleSocialLoginClick","isPrimaryBtn","isEmailVisible","isSmsVisible","setFieldValue","countryCode","setCountryCode","isValidInput","setIsValidInput","handleFormSubmit","handleInputChange","SocialLogins","canShowMore","setCanShowMore","isExpanded","setIsExpanded","socialLoginsConfig","expandClickHandler","maxOptions","loginMethodKey","adapterListClass","adapterButtonClass","adapterExpandText","loginMethodsCount","restrictedLoginMethods","_socialLoginsConfig$u","_socialLoginsConfig$u2","_socialLoginsConfig$u3","isMainOption","hoverId","hoverImage","loginMethodSpan","_modalState$socialLog","_modalState$socialLog2","_whiteLabel$theme","_modalState$socialLog5","_modalState$socialLog7","_modalState$socialLog9","_modalState$socialLog10","modalTransitionClasses","setModalTransitionClasses","modalState","setModalState","stateListener","handleShowExternalWallets","whiteLabel","newModalState","deepmerge","timeOutId","onCloseLoader","preHandleExternalWalletClick","preHandleSocialWalletClick","isEmailPrimary","isExternalPrimary","externalWalletButton","areSocialLoginsVisible","_modalState$socialLog3","_modalState$socialLog4","isEmailPasswordlessLoginVisible","_modalState$socialLog6","isSmsPasswordlessLoginVisible","_modalState$socialLog8","modalClassName","createWrapper$1","parentZIndex","existingWrapper","LoginModal","_uiConfig","darkState","useLang","__vitePreload","loginMethods","loginMethodsOrder","uiConfig","externalWalletsConfig","adapterData","walletConnectData","css_248z","defaultSolanaDappModalConfig","defaultEvmDappModalConfig","defaultSolanaWalletModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","getPrivateKeyProvider","SolanaPrivateKeyProvider","EthereumPrivateKeyProvider","getDefaultAdapterModule","TorusWalletAdapter","SolanaWalletAdapter","MetamaskAdapter","PhantomAdapter","WalletConnectV2Adapter","OpenloginAdapter","getOpenloginDefaultOptions","privateKeyProvider","Web3Auth","allAdapters","adapterConfigurationPromises","_this$modalConfig$ada","_params$modalConfig","_this$modalConfig$ada2","_this$modalConfig$ada3","_this$modalConfig$ada4","_this$coreOptions$cha","openloginAdapter","currentPrivateKeyProvider","adapterNames","hasInAppWallets","_this$modalConfig$ada5","_this$modalConfig$ada6","_adapter$name","mergedLoginMethods","hasExternalWallets","_this$walletAdapters$","_this$modalConfig$ada7","externalWalletsInitialized","adaptersConfig","_adapterName","_this$options$uiConfi","_this$options$uiConfi2","_this$options$uiConfi3","visibility","walletConnectStatus","BaseSessionManager","DEFAULT_SESSION_TIMEOUT","OpenloginSessionManager","sessionServerBaseUrl","sessionNamespace","sessionId","pubKey","encData","log$1","SecurePubSub","topicPrivKey","encryptedData","isPromisePending","topicPubKey","currentSocketConnection","reconnect","visibilityListener","disconnectListener","returnPromise","decData","localSocketConnection","OpenloginError","InitializationError","LoginError","getLogger","getHashQueryParams","replaceUrl","queryResult","hashUrl","hashResult","hashParams","cleanUrl","constructURL","baseURL","getPopupFeatures","dualScreenLeft","dualScreenTop","systemZoom","isMobileOrTablet","getTimeout","loginProvider","PopupHandler","features","_this$window","locationReplaceOnRedirect","loginId","securePubSub","parsedData","OpenLogin","defaultParams","dataObject","popupTimeout","configParams","loginUrl","currentWindow","isRedirectResult","adapterSettings","_this$privateKeyProvi","_this$privateKeyProvi2","_this$openloginOption","finalPrivKey","_this$openloginOption2","_params$extraLoginOpt","_params$extraLoginOpt2","pkg","IS_SERVER","isIWeb3AuthModal","Web3AuthConnector","connectedChainId","_chain$blockExplorers","_chain$nativeCurrency","_chain$nativeCurrency2","publicProvider","lazySingleton","singletonBuilder","valueBox","isPrimitive","deepFreezeRec","$timedOutSymbol","isTimedOut","timeoutPromise","createDepthLimiterReplacer","maxDepth","weakMap","AuthActionType","AuthSteps","DISCONNECTING_STEPS","isDisconnectingStep","CONNECTING_STEPS","isConnectingStep","VALID_TRANSITIONS","throwIfInvalidStateTransition","oldState","validTransitionsFromNewState","initState","_useSyncWithWagmi","internalState","wagmiAccount","connectorType","getWeb3AuthConnector","getInjectedConnector","initDisconnect","initConnectWithAddress","prevWagmiAccountRef","prevWagmiAccount","handleAccountsChanged","handleChainChanged","l1NativeConfig","l1IdSubnetConfig","_useOnModalClose","modalSelector","web3authModalNode","mut","_useConnectDisconnect","queuedAuthAction","setQueuedAuthAction","COMPRESSED$1","FENCED","NSM_MAX","decode_arithmetic","u16","symbol_count","pos_payload","read_width","read_buffer","read_bit","FULL","QRTR","MASK","register","read_payload","read_compressed_payload","unsafe_atob","read_deltas","read_sorted","read_sorted_arrays","read_array_while","read_mapped","read_linear_table","read_replacement_table","read_transposed","dx","dy","vN","ys","j_dy","read_trie","cps","cp","hex_cp","quote_cp","explode_cp","str_from_cps","compare_arrays","COMPRESSED","S0","L0","V0","T0","L_COUNT","V_COUNT","T_COUNT","N_COUNT","S_COUNT","S1","L1","V1","unpack_cc","packed","unpack_cp","SHIFTED_RANK","EXCLUSIONS","DECOMP","RECOMP","init$1","bucket","is_hangul","compose_pair","recomp","decomposed","check_order","s_index","l_index","v_index","t_index","prev_cc","composed_from_decomposed","prev_cp","composed","nfd","nfc","HYPHEN","STOP_CH","FE0F","UNIQUE_PH","Array_from","group_has_cp","Emoji","MAPPED","IGNORED","CM","NSM","ESCAPE","GROUPS","WHOLE_VALID","WHOLE_MAP","VALID","EMOJI_LIST","EMOJI_ROOT","read_sorted_array","read_sorted_set","unrestricted","read_chunked","wholes","recs","gs","complement","multi","add_to_union","quoted_cp","should_escape","bidi_qq","safe_str_from_cps","check_label_extension","check_leading_underscore","check_fenced","error_placement","quoter","is_combining_mark","ens_normalize","filter_fe0f","tokens","tokens_from_str","token_count","norm","unique","determine_group","check_group","check_whole","maker","whole","groups","error_group_member","error_disallowed","quoted","where","emoji","consume_emoji_reversed","eaten","useConstFn","useConstReadonly","useConstReadonlyFn","useConst","useIdSubnet","publicClientSubnet","l1IdSubnetWagmiConfig","formatBalance","getL1nsName","CONTRACT_RESOLVER_ADDRESS","L1Resolver","getL1nsAddress","handle","getL1nsNickname","useEthProvider","useAuth","getWagmiWalletClient","l1NativeWagmiConfig","getPremiumMinBalance","price","CONTRACT_COLLECTOR_ADDRESS","L1PaymentCollector","getAccounts","getPrivateKey","web3AuthInstance","getWeb3AuthInstance","signAndSendTransaction","destinationAddress","makePremiumUsernamePurchase","defaultAttributes","createReactComponent","iconNamePascal","iconNode","stroke","attrs","PropTypes","IconAlertCircle","IconBrandDiscord","IconBrandX","IconCheck","IconChevronDown","IconChevronRight","IconChevronUp","IconCopy","IconDotsVertical","IconLink","IconLoader","IconShare2","_objectWithoutPropertiesLoose","excluded","sourceKeys","_assertThisInitialized","noOp","SnackbarContext","breakpoints","capitalise","originKeyExtractor","anchor","isDefined","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","appear","initialStatus","nextIn","nextStatus","enter","exit","mounting","isAppearing","timeouts","nextState","doesNotHaveTimeoutOrListener","childProps","_this$props$nodeRef","React__default","useForkRef","refA","refB","refValue","getTransitionProps","_props$style","defaultEasing","reflow","formatMs","milliseconds","createTransition","_ref$duration","_ref$easing","easing","_ref$delay","animatedProp","formattedDuration","formattedDelay","ownerWindow","later","getTranslateValue","containerWindow","computedStyle","offsetX","offsetY","transformValues","setTranslateValue","Slide","_props$direction","inProp","_props$timeout","nodeRef","handleRefIntermediary","handleRef","handleEnter","handleEntering","handleExit","handleExited","updatePosition","handleResize","SvgIcon","CheckIcon","WarningIcon","ErrorIcon","InfoIcon","defaultIconVariants","getAutoHideDuration","optionsDuration","propsDuration","isNumberOrNull","numberish","getTransitionDuration","shouldObjectMerge","makeStyles","_extends2","ComponentClasses","collapsedSize","Collapse","getWrapperSize","wrapperSize","_getTransitionProps","handleEntered","handleExiting","_getTransitionProps2","getSlideDirection","anchorOrigin","toSnackbarAnchorOrigin","keepSnackbarClassKeys","containerClasses","noOp$1","createChainedFunction","snackbarId","argums","useEnhancedEffect","useEventCallback","Snackbar","autoHideDuration","_props$disableWindowB","disableWindowBlurListener","_props$SnackbarProps","SnackbarProps","timerAutoHide","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","_root","classes$1","SnackbarContent","classes$2","ariaDescribedby","MaterialDesignContent","forwardedRef","componentOrFunctionAction","iconVariant","hideIconVariant","MaterialDesignContent$1","SnackbarItem","_useState","collapsed","setCollapsed","handleExitedScreen","snack","allClasses","_props$Component","TransitionComponent","TransitionProps","componentOrFunctionContent","otherSnack","cbName","_root$1","_rootDense","_left","_right","_center","indents","collapseWrapper","xsWidthMargin","styles$1","SnackbarContainer","_props$classes","dense","combinedClassname","SnackbarContainer$1","isOptions","messageOrOptions","isMessage","enqueueSnackbar","closeSnackbar","SnackbarProvider","_Component","optsOrUndefined","preventDuplicate","hasSpecifiedKey","inQueue","inView","snacks","popped","persistentCount","shouldCloseAll","toBeClosed","contextValue","domRoot","_this$props$dense","_this$props$Component","Components","categ","category","existingOfCategory","snackbars","origin","nomineeSnack","useSnackbar","avatar_01","avatar_02","avatar_03","avatar_04","rightElement","hashList","avatarDefaultOptions","deleteUserIdentityIfDifferentVersion","userIdentity","avatar","getSavedProfileImage","avatars","avatarOptions","profileImage","firstSplit","profileImageIndex","secondSplit","getUserIdentityPromise","userInfo","cachedUserIdentityStr","cachedUserIdentity","locallyStoredAdapter","nickname","username","snackBars","uId","savedProfile","uIdPromise","newUserIdentity","l1nsUsername","BLANK_ADDRESS","usePromiseState","initialListeners","listenToPromise","iS","iL","prevEffectStateRef","prevEffectState","setPromise","forceNewState","retState","LOGIN_STEP_TIMEOUT_MS","LOGOUT_TIMEOUT_MS","usePromiseStates","setWagmiDisconnectPromiseState","resetWagmiDisconnectPromiseState","setWeb3AuthDisconnectPromiseState","resetWeb3AuthDisconnectPromiseState","setWagmiConnectPromise","resetWagmiConnectPromiseState","setUserInfoPromise","resetUserInfoPromiseState","setUserIdentityPromise","resetUserIdentityPromiseState","setProviderPromise","resetProviderPromiseState","resetPromises","_useStateTransitions","promiseStates","prevInternalStateUseEffectRef","prevInternalState","_useInternalAuth","authContext","InnerAuth","ctxValue","AuthProvider","getWagmiConfig","MemoizedAuthProvider","Action","PopStateEventType","createBrowserHistory","createBrowserLocation","globalHistory","pathname","createLocation","createBrowserHref","createPath","getUrlBasedHistory","createKey","getHistoryState","parsePath","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","getIndex","handlePop","history","historyState","createURL","href","ResultType","immutableRouteKeys","isIndexRoute","route","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","treePath","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matchRouteBranch","safelyDecodeURI","convertRouteMatchToUiMatch","loaderData","parentsMeta","flattenRoute","relativePath","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","restExploded","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","score","segment","matchedParams","matchedPathname","remainingPathname","matchPath","normalizePathname","matcher","compiledParams","compilePath","pathnameBase","captureGroups","paramName","splatValue","safelyDecodeURIComponent","caseSensitive","regexpSource","startIndex","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","ErrorResponseImpl","statusText","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","IDLE_FETCHER","IDLE_BLOCKER","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","TRANSITIONS_STORAGE_KEY","createRouter","routerWindow","detectErrorBoundary","dataRoutes","inFlightDataRoutes","future","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","hasLazyRoutes","hasLoaders","router","pendingAction","pendingPreventScrollReset","pendingNavigationController","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","initialize","historyAction","blockerKey","shouldBlockNavigation","updateBlocker","blockers","updateState","startNavigation","restoreAppliedTransitions","_saveAppliedTransitions","persistAppliedTransitions","deleteFetcher","deleteBlocker","completedFetchers","deletedFetchersKeys","completeNavigation","_location$state","_location$state2","flushSync","isActionReload","isMutationMethod","actionData","mergeLoaderData","preventScrollReset","viewTransitionOpts","priorPaths","toPaths","getSavedScrollPosition","navigate","normalizedPath","normalizeTo","submission","normalizeNavigateOptions","currentLocation","nextLocation","userReplace","revalidate","interruptActiveLoads","saveScrollPosition","routesToUse","loadingNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","createClientSideRequest","pendingActionData","pendingError","findNearestBoundary","actionOutput","handleAction","getLoadingNavigation","shortCircuited","handleLoaders","navigation","getSubmittingNavigation","actionMatch","getTargetMatch","callLoaderOrAction","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","overrideNavigation","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","matchesToLoad","revalidatingFetchers","getMatchesToLoad","routeId","updatedFetchers","markFetchRedirectsDone","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","aborted","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","existingFetcher","updateFetcherState","getSubmittingFetcher","fetchRequest","originatingLoadId","actionResult","getDoneFetcher","revalidationRequest","loadId","loadFetcher","staleKey","doneFetcher","resolveDeferredData","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","formMethod","formAction","formEncType","currentMatches","fetchersToLoad","resolveDeferredResults","getFetcher","deleteFetcherAndUpdateState","markFetchersDone","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","blockerFunction","cancelledRouteIds","dfd","enableScrollRestoration","positions","getPosition","getScrollKey","_internalSetRoutes","newRoutes","isSubmissionNavigation","prependBasename","fromRouteId","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","searchParams","formData","convertFormDataToSearchParams","convertSearchParamsToFormData","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","isInitialLoad","currentUrl","nextUrl","navigationMatches","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","currentLoaderData","currentMatch","isMissingData","currentPath","loaderMatch","routeChoice","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","resultType","onReject","runHandler","abortPromise","handlerError","isResponse","isSameBasename","isDeferredData","_result$init","_result$init2","processRouteLoaderData","statusCode","foundError","loaderHeaders","newLoaderData","mergedLoaderData","_temp5","isRevalidatingLoader","_window","sessionPositions","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","useIsomorphicLayoutEffect","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","UNSAFE_getResolveToMatches","activeRef","OutletContext","useOutlet","outlet","useParams","routeMatch","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","DefaultErrorComponent","useRouteError","preStyles","devInfo","defaultErrorElement","RenderErrorBoundary","React.Component","errorInfo","RenderedRoute","routeContext","_dataRouterState2","_dataRouterState","errorIndex","renderFallback","fallbackIndex","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","warningOnce","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","Outlet","Route","_props","Router","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","createRoutesFromChildren","React.isValidElement","updates","isModifiedEvent","shouldProcessLinkClick","_excluded","createBrowserRouter","parseHydrationData","UNSAFE_mapRouteProperties","deserializeErrors","UNSAFE_ErrorResponseImpl","ErrorConstructor","ViewTransitionContext","FetchersContext","START_TRANSITION","startTransitionImpl","FLUSH_SYNC","flushSyncImpl","startTransitionSafe","flushSyncSafe","Deferred","RouterProvider","fallbackElement","setStateImpl","pendingState","setPendingState","vtContext","setVtContext","renderDfd","setRenderDfd","setTransition","interruption","setInterruption","fetcherData","v7_startTransition","optInStartTransition","isViewTransitionUnavailable","renderPromise","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","DataRoutes","UNSAFE_useRoutesImpl","Link","_ref7","reloadDocument","unstable_viewTransition","UNSAFE_NavigationContext","absoluteHref","isExternal","targetUrl","internalOnClick","useLinkClickHandler","replaceProp","textMinWidth","textMinHeight","EnglishText","ErrorBoundaryFallbackSkeleton","resetErrorBoundary","setLocation","restartHandle","ErrorBoundaryWithContexts","ErrorBoundaryFallback","noContextSetLocation","noContextFallback","getAuthedRedirectPath","newRoute","forceStepper","restoreOldRoute","setUsername","oldRoute","saveLocation","getUnauthedRedirectPath","saveOldRoute","loading_black","loading_white","loading_black_bg2","loading_white_bg2","IconWrapper","iconDark","iconLight","imageLoaderHeight","noText","setIsLoading","handleLoading","Loading","dashboard","background2","NotAuthenticated","whileConnecting","notAuthenticated","RootRedirector","Authenticated","authenticated","authedDynImportWeakMap","authenticatedDynImport","importPromise","awaitedImport","preloadedAuthedDynImport","ImComponent","authedComponent","gtag","_default","smallWords","toTitleCase","mightBeEmail","redacted","redactEmail","titleCase","redactingEmail","_gtag","_format","_excluded2","_excluded3","_objectWithoutProperties","sourceSymbolKeys","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_s","_x","_r","_arr","_n","GA4","GA_MEASUREMENT_ID","gtagUrl","script","gaOptions","mapFields","gtagOptions","initConfigs","_options$testMode","testMode","mergedGtagOptions","queues","fieldsObject","eventCategory","eventAction","eventLabel","eventValue","_args$","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","_args$2","hitType","_len5","_key5","command","_len6","_key6","_len7","_key7","readyCallback","optionsOrName","nonInteraction","fieldObject","_ga","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","newObj","hasPropertyDescriptor","ReactGAImplementation","darkMode","transparent","noBorder","borderColor","style1","backAnimation","isNotDesktop","RootButton","Web3Button","useMountedRef","ensureKeyInObject","oldObj","mergedObj","byteSize","saveObjectToStorage","stringifiedObj","useStorage","keyName","initialDefaultValue","storedValue","setStoredValue","parsedValue","mergedValue","storedValueRef","onStorage","setValue","oldValue","newStoredValue","useLocalStorage","whiteLogo","blackLogo","patternDark","patternLight","isMobile","Disclaimer","disclaimer","setDisclaimer","l1QrLogo","AddToHomeScreen","isSafariUser","TermsPolicy","LandingPage","appInstructions","setAppInstructions","appMode","modalCLose","logoDark","logoLight","reactPropsRegex","isPropValid","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","Insertion","createStyled","baseTag","targetClassName","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","classInterpolations","finalShouldForwardProp","newProps","nextTag","nextOptions","newStyled","tagName","styledStack","styled","StyledStack","bodyStack","BodyStack","styledLink","StyledLink","styledLinkAsButton","StyledLinkAsButton","styledRoundedButton","StyledRoundedButton","homeBlackIcon","homeWhiteIcon","NotFound","HeaderButton","pagePath","iconOnly","useCopyClipboard","isCopied","setIsCopied","copiedText","setCopiedText","staticCopy","didCopy","hide","copiedClipboard_green","copiedClipboard_blue","callbackCopyMessage","copyMessageIcon","CopyButton","share","menuOpened","UserHeader","setMenuOpened","displayAddress","truncateIdentity","shortenHash","HeaderIconWrapper","selected","darkmode","airdropBlackIcon","airdropWhiteIcon","sendBlackIcon","sendWhiteIcon","activityBlackIcon","activityWhiteIcon","itemsBlackIcon","itemsWhiteIcon","studioBlackIcon","studioWhiteIcon","iconicBlack","iconicWhite","itemPageRegex","isItemPage","BurgerButton","pageName","HoveredHeaderButton","isHovered","setIsHovered","burgerMenu","iconOpened","drawerOpened","lamina1Logo","AppFrame","lazyRoutes","preloadLazyRoutes","routesObj","createRoutesFromElements","Analytics","QRCodeModal","Seo","creator","Helmet","darkTheme","lightTheme","mapThemeToMantineTheme","customTheme","useCustomTheme","activeTheme","isLikeCloseEvent","isLikeErrorEvent","GraphQLWsLink","likeClose","buildDelayFunction","delayOptions","buildRetryFunction","retryOptions","retryIf","RetryableOperation","delayFor","RetryLink","attempts","retryable","extendedTypeof","areGraphQLErrors","limitCloseReason","whenTooLong","GRAPHQL_TRANSPORT_WS_PROTOCOL","CloseCode","MessageType","validateMessage","parseMessage","stringifyMessage","__await","__asyncGenerator","settle","fulfill","connectionParams","onNonLazyError","lazyCloseTimeoutMs","keepAlive","disablePong","connectionAckWaitTimeout","retryAttempts","retryWait","retries","isFatalConnectionProblem","webSocketImpl","generateID","isWebSocket","WebSocketImpl","errorOrClosed","listening","unlisten","connecting","locks","lazyCloseTimeout","disposed","throwOnClose","denied","connectionAckTimeout","queuedPing","enqueuePing","errOrEvent","acknowledged","released","shouldRetryConnectOrThrow","errOrCloseEvent","isFatalInternalCloseCode","sink","releaser","waitForReleaseOrThrowOnClose","each","fieldContentRegExp","serializeCookie","sameSite","minutes","cookieOptions","nameEQ","cookie$1","querystring","hasLocalStorageSupport","localStorageAvailable","testKey","localStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","navigator$1","htmlTag","subdomain","lookupFromSubdomainIndex","Browser","detector","detectionOrder","detected","detectorName","cacheName","handleCorrectReadFunction","Backend","i18nextOptions","bLen","loadPosition","isLastBackend","lengthCheckAmount","savedAt","savePosition","nextBackend","_this$services","backendConnector","currentLanguage","hasXMLHttpRequest","maybePromise","makePromise","__global__","__globalThis__","support","viewClasses","normalizeName","normalizeValue","iteratorFor","Headers","fileReaderReady","readBlobAsArrayBuffer","blob","readBlobAsText","readArrayBufferAsText","bufferClone","Body","isConsumed","normalizeMethod","upcased","reParamSearch","reQueryString","form","rawHeaders","preProcessedHeaders","Response","bodyInit","redirectStatuses","abortXhr","fixUrl","fetchApi","require","XmlHttpRequestApi","ActiveXObjectApi","fetchNode","fetchNode.default","addQueryString","queryString","fetchIt","omitFetchOptions","requestWithFetch","reqOptions","requestWithXmlHttpRequest","allOptions","loadUrlLanguages","loadUrlNamespaces","loadPath","resolvedLoadPath","parseErr","dataArray","resArray","addPath","Storage","nowMS","local","i18nStamp","resourcesToBackend","backendOptions","define_I18N_DEFAULT_LOCALE_RESOURCES_default","SnackbarCloseButton","snackbarKey","SnackbarCustomProvider","userTheme","contextModals","App","mantineTheme","Suspense","I18NextProvider","HelmetProvider","App$1"],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/ts-invariant/lib/invariant.js","../../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../../node_modules/@apollo/client/utilities/globals/maybe.js","../../node_modules/@apollo/client/utilities/globals/global.js","../../node_modules/@apollo/client/utilities/globals/DEV.js","../../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../../node_modules/ts-invariant/process/index.js","../../node_modules/graphql/jsutils/devAssert.mjs","../../node_modules/graphql/language/ast.mjs","../../node_modules/graphql/language/kinds.mjs","../../node_modules/graphql/language/characterClasses.mjs","../../node_modules/graphql/language/blockString.mjs","../../node_modules/graphql/jsutils/inspect.mjs","../../node_modules/graphql/jsutils/instanceOf.mjs","../../node_modules/graphql/language/source.mjs","../../node_modules/graphql/language/printString.mjs","../../node_modules/graphql/language/visitor.mjs","../../node_modules/graphql/language/printer.mjs","../../node_modules/graphql/language/predicates.mjs","../../node_modules/@apollo/client/utilities/globals/fix-graphql.js","../../node_modules/@apollo/client/utilities/globals/index.js","../../node_modules/@apollo/client/utilities/graphql/directives.js","../../node_modules/@apollo/client/utilities/graphql/fragments.js","../../node_modules/@apollo/client/utilities/common/objects.js","../../node_modules/@apollo/client/utilities/graphql/storeUtils.js","../../node_modules/@apollo/client/utilities/graphql/getFromAST.js","../../node_modules/@apollo/client/utilities/common/arrays.js","../../node_modules/@apollo/client/utilities/graphql/transform.js","../../node_modules/@apollo/client/utilities/common/mergeDeep.js","../../node_modules/zen-observable-ts/module.js","../../node_modules/symbol-observable/es/ponyfill.js","../../node_modules/symbol-observable/es/index.js","../../node_modules/@apollo/client/utilities/observables/Observable.js","../../node_modules/@apollo/client/utilities/common/cloneDeep.js","../../node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","../../node_modules/@apollo/client/utilities/observables/iteration.js","../../node_modules/@apollo/client/utilities/observables/asyncMap.js","../../node_modules/@apollo/client/utilities/common/canUse.js","../../node_modules/@apollo/client/utilities/observables/subclassing.js","../../node_modules/@apollo/client/utilities/observables/Concast.js","../../node_modules/@apollo/client/utilities/common/incrementalResult.js","../../node_modules/@apollo/client/utilities/common/errorHandling.js","../../node_modules/@apollo/client/utilities/common/compact.js","../../node_modules/@apollo/client/utilities/common/makeUniqueId.js","../../node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","../../node_modules/@apollo/client/utilities/common/mergeOptions.js","../../node_modules/@apollo/client/link/utils/fromError.js","../../node_modules/@apollo/client/link/utils/throwServerError.js","../../node_modules/@apollo/client/link/utils/validateOperation.js","../../node_modules/@apollo/client/link/utils/createOperation.js","../../node_modules/@apollo/client/link/utils/transformOperation.js","../../node_modules/@apollo/client/link/core/ApolloLink.js","../../node_modules/@apollo/client/link/core/from.js","../../node_modules/@apollo/client/link/core/split.js","../../node_modules/@apollo/client/link/core/execute.js","../../node_modules/@apollo/client/version.js","../../node_modules/@apollo/client/utilities/common/responseIterator.js","../../node_modules/@apollo/client/link/http/iterators/async.js","../../node_modules/@apollo/client/link/http/iterators/nodeStream.js","../../node_modules/@apollo/client/link/http/iterators/promise.js","../../node_modules/@apollo/client/link/http/iterators/reader.js","../../node_modules/@apollo/client/link/http/responseIterator.js","../../node_modules/@apollo/client/errors/index.js","../../node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","../../node_modules/@apollo/client/link/http/serializeFetchParameter.js","../../node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","../../node_modules/@apollo/client/link/http/checkFetcher.js","../../node_modules/@apollo/client/link/http/createSignalIfSupported.js","../../node_modules/@apollo/client/link/http/selectURI.js","../../node_modules/@apollo/client/link/http/rewriteURIForGET.js","../../node_modules/@apollo/client/link/http/createHttpLink.js","../../node_modules/@apollo/client/link/http/HttpLink.js","../../node_modules/@wry/equality/lib/index.js","../../node_modules/optimism/node_modules/@wry/trie/lib/trie.esm.js","../../node_modules/@wry/context/lib/slot.js","../../node_modules/optimism/lib/bundle.esm.js","../../node_modules/@apollo/client/cache/core/cache.js","../../node_modules/@apollo/client/cache/core/types/common.js","../../node_modules/@wry/trie/lib/index.js","../../node_modules/@apollo/client/cache/inmemory/helpers.js","../../node_modules/@apollo/client/cache/inmemory/entityStore.js","../../node_modules/@apollo/client/cache/inmemory/object-canon.js","../../node_modules/@apollo/client/cache/inmemory/readFromStore.js","../../node_modules/@apollo/client/cache/inmemory/reactiveVars.js","../../node_modules/@apollo/client/cache/inmemory/key-extractor.js","../../node_modules/@apollo/client/cache/inmemory/policies.js","../../node_modules/@apollo/client/cache/inmemory/writeToStore.js","../../node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","../../node_modules/@apollo/client/core/networkStatus.js","../../node_modules/@apollo/client/core/ObservableQuery.js","../../node_modules/@apollo/client/core/LocalState.js","../../node_modules/@apollo/client/core/QueryInfo.js","../../node_modules/@apollo/client/core/QueryManager.js","../../node_modules/@apollo/client/core/ApolloClient.js","../../node_modules/@apollo/client/react/context/ApolloContext.js","../../node_modules/@apollo/client/react/context/ApolloProvider.js","../../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../node_modules/use-callback-ref/dist/es2015/assignRef.js","../../node_modules/use-callback-ref/dist/es2015/useRef.js","../../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../node_modules/use-sidecar/dist/es2015/medium.js","../../node_modules/use-sidecar/dist/es2015/exports.js","../../node_modules/react-remove-scroll/dist/es2015/medium.js","../../node_modules/react-remove-scroll/dist/es2015/UI.js","../../node_modules/get-nonce/dist/es2015/index.js","../../node_modules/react-style-singleton/dist/es2015/singleton.js","../../node_modules/react-style-singleton/dist/es2015/hook.js","../../node_modules/react-style-singleton/dist/es2015/component.js","../../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../node_modules/react-remove-scroll/dist/es2015/Combination.js","../../node_modules/@mantine/utils/esm/create-polymorphic-component/create-polymorphic-component.js","../../node_modules/@mantine/utils/esm/find-element-ancestor/find-element-ancestor.js","../../node_modules/@mantine/utils/esm/create-scoped-keydown-handler/create-scoped-keydown-handler.js","../../node_modules/@mantine/utils/esm/get-context-item-index/get-context-item-index.js","../../node_modules/@mantine/utils/esm/create-safe-context/create-safe-context.js","../../node_modules/@mantine/utils/esm/pack-sx/pack-sx.js","../../node_modules/@mantine/utils/esm/noop/noop.js","../../node_modules/@mantine/utils/esm/close-on-escape/close-on-escape.js","../../node_modules/@mantine/utils/esm/create-event-handler/create-event-handler.js","../../node_modules/@mantine/utils/esm/use-hovered/use-hovered.js","../../node_modules/@mantine/utils/esm/create-use-external-events/create-use-external-events.js","../../node_modules/@mantine/utils/esm/is-element/is-element.js","../../node_modules/clsx/dist/clsx.m.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/default-colors.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/font-styles/font-styles.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/focus-styles/focus-styles.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/primary-shade/primary-shade.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/theme-color/theme-color.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/gradient/get-gradient-color-stops/get-gradient-color-stops.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/gradient/gradient.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/utils/rem/rem.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/utils/get-size/get-size.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/breakpoints/breakpoints.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/utils/to-rgba/to-rgba.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/rgba/rgba.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/cover/cover.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/darken/darken.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/lighten/lighten.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/radius/radius.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/variant/variant.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/primary-color/primary-color.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/hover/hover.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/placeholder-styles/placeholder-styles.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/dimmed/dimmed.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/fns/index.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/functions/attach-functions.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/default-theme.js","../../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/stylis/src/Middleware.js","../../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/index.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/GlobalStyles.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/MantineCssVariables.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/utils/merge-theme/merge-theme.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/utils/filter-props/filter-props.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/NormalizeCSS.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/MantineProvider.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/theme/utils/get-default-z-index/get-default-z-index.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/tss/utils/use-guaranteed-memo/use-guaranteed-memo.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/tss/default-emotion-cache.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/tss/use-emotion-cache.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/tss/use-css.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/tss/utils/merge-class-names/merge-class-names.js","../../node_modules/@mantine/core/node_modules/@mantine/styles/esm/tss/create-styles.js","../../node_modules/@mantine/core/esm/Transition/transitions.js","../../node_modules/@mantine/hooks/esm/use-click-outside/use-click-outside.js","../../node_modules/@mantine/hooks/esm/use-media-query/use-media-query.js","../../node_modules/@mantine/hooks/esm/use-isomorphic-effect/use-isomorphic-effect.js","../../node_modules/@mantine/hooks/esm/use-did-update/use-did-update.js","../../node_modules/@mantine/hooks/esm/use-focus-return/use-focus-return.js","../../node_modules/@mantine/hooks/esm/use-focus-trap/tabbable.js","../../node_modules/@mantine/hooks/esm/use-focus-trap/scope-tab.js","../../node_modules/@mantine/hooks/esm/utils/random-id/random-id.js","../../node_modules/@mantine/hooks/esm/use-focus-trap/create-aria-hider.js","../../node_modules/@mantine/hooks/esm/use-focus-trap/use-focus-trap.js","../../node_modules/@mantine/hooks/esm/use-id/use-react-id.js","../../node_modules/@mantine/hooks/esm/use-id/use-id.js","../../node_modules/@mantine/hooks/esm/use-window-event/use-window-event.js","../../node_modules/@mantine/hooks/esm/utils/assign-ref/assign-ref.js","../../node_modules/@mantine/hooks/esm/use-merged-ref/use-merged-ref.js","../../node_modules/@mantine/hooks/esm/use-uncontrolled/use-uncontrolled.js","../../node_modules/@mantine/hooks/esm/use-reduced-motion/use-reduced-motion.js","../../node_modules/@mantine/hooks/esm/use-disclosure/use-disclosure.js","../../node_modules/@mantine/core/esm/Box/style-system-props/extract-system-styles/extract-system-styles.js","../../node_modules/@mantine/core/esm/Box/style-system-props/get-responsive-value/get-responsive-value.js","../../node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-color-value.js","../../node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-default-value.js","../../node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-font-size-value.js","../../node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-spacing-value.js","../../node_modules/@mantine/core/esm/Box/style-system-props/value-getters/value-getters.js","../../node_modules/@mantine/core/esm/Box/style-system-props/system-props/system-props.js","../../node_modules/@mantine/core/esm/Box/style-system-props/get-system-styles/get-system-styles.js","../../node_modules/@mantine/core/esm/Box/use-sx/use-sx.js","../../node_modules/@mantine/core/esm/Box/Box.js","../../node_modules/@mantine/core/esm/UnstyledButton/UnstyledButton.styles.js","../../node_modules/@mantine/core/esm/UnstyledButton/UnstyledButton.js","../../node_modules/@mantine/core/esm/ActionIcon/ActionIcon.styles.js","../../node_modules/@mantine/core/esm/Loader/loaders/Bars.js","../../node_modules/@mantine/core/esm/Loader/loaders/Oval.js","../../node_modules/@mantine/core/esm/Loader/loaders/Dots.js","../../node_modules/@mantine/core/esm/Loader/Loader.js","../../node_modules/@mantine/core/esm/ActionIcon/ActionIcon.js","../../node_modules/@mantine/core/esm/Portal/Portal.js","../../node_modules/@mantine/core/esm/Portal/OptionalPortal.js","../../node_modules/@mantine/core/esm/Alert/Alert.styles.js","../../node_modules/@mantine/core/esm/CloseButton/CloseIcon.js","../../node_modules/@mantine/core/esm/CloseButton/CloseButton.js","../../node_modules/@mantine/core/esm/Alert/Alert.js","../../node_modules/@mantine/core/esm/Text/Text.styles.js","../../node_modules/@mantine/core/esm/Text/Text.js","../../node_modules/@mantine/core/esm/Divider/Divider.styles.js","../../node_modules/@mantine/core/esm/Divider/Divider.js","../../node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","../../node_modules/@mantine/core/esm/Floating/use-floating-auto-update.js","../../node_modules/@mantine/core/esm/Popover/use-popover.js","../../node_modules/@mantine/core/esm/Popover/Popover.errors.js","../../node_modules/@mantine/core/esm/Popover/Popover.context.js","../../node_modules/@mantine/core/esm/Popover/PopoverTarget/PopoverTarget.js","../../node_modules/@mantine/core/esm/Popover/PopoverDropdown/PopoverDropdown.styles.js","../../node_modules/@mantine/core/esm/Transition/get-transition-styles/get-transition-styles.js","../../node_modules/@mantine/core/esm/Transition/use-transition.js","../../node_modules/@mantine/core/esm/Transition/Transition.js","../../node_modules/@mantine/core/esm/FocusTrap/FocusTrap.js","../../node_modules/@mantine/core/esm/Floating/FloatingArrow/get-arrow-position-styles.js","../../node_modules/@mantine/core/esm/Floating/FloatingArrow/FloatingArrow.js","../../node_modules/@mantine/core/esm/Popover/PopoverDropdown/PopoverDropdown.js","../../node_modules/@mantine/core/esm/Floating/get-floating-position/get-floating-position.js","../../node_modules/@mantine/core/esm/Popover/Popover.js","../../node_modules/@mantine/core/esm/Input/use-input-props.js","../../node_modules/@mantine/core/esm/Input/InputLabel/InputLabel.styles.js","../../node_modules/@mantine/core/esm/Input/InputLabel/InputLabel.js","../../node_modules/@mantine/core/esm/Input/InputError/InputError.styles.js","../../node_modules/@mantine/core/esm/Input/InputError/InputError.js","../../node_modules/@mantine/core/esm/Input/InputDescription/InputDescription.styles.js","../../node_modules/@mantine/core/esm/Input/InputDescription/InputDescription.js","../../node_modules/@mantine/core/esm/Input/InputWrapper.context.js","../../node_modules/@mantine/core/esm/Input/InputWrapper/get-input-offsets.js","../../node_modules/@mantine/core/esm/Input/InputWrapper/InputWrapper.styles.js","../../node_modules/@mantine/core/esm/Input/InputWrapper/InputWrapper.js","../../node_modules/@mantine/core/esm/Input/InputPlaceholder/InputPlaceholder.js","../../node_modules/@mantine/core/esm/Input/Input.styles.js","../../node_modules/@mantine/core/esm/Input/Input.js","../../node_modules/@mantine/core/esm/Avatar/AvatarPlaceholderIcon.js","../../node_modules/@mantine/core/esm/Avatar/AvatarGroup/AvatarGroup.context.js","../../node_modules/@mantine/core/esm/Avatar/AvatarGroup/AvatarGroup.styles.js","../../node_modules/@mantine/core/esm/Avatar/AvatarGroup/AvatarGroup.js","../../node_modules/@mantine/core/esm/Avatar/Avatar.styles.js","../../node_modules/@mantine/core/esm/Avatar/Avatar.js","../../node_modules/@mantine/core/esm/Burger/Burger.styles.js","../../node_modules/@mantine/core/esm/Burger/Burger.js","../../node_modules/@mantine/core/esm/Button/ButtonGroup/ButtonGroup.styles.js","../../node_modules/@mantine/core/esm/Button/ButtonGroup/ButtonGroup.js","../../node_modules/@mantine/core/esm/Button/Button.styles.js","../../node_modules/@mantine/core/esm/Button/Button.js","../../node_modules/@mantine/core/esm/Paper/Paper.styles.js","../../node_modules/@mantine/core/esm/Paper/Paper.js","../../node_modules/@mantine/core/esm/Center/Center.styles.js","../../node_modules/@mantine/core/esm/Center/Center.js","../../node_modules/@mantine/core/esm/Container/Container.styles.js","../../node_modules/@mantine/core/esm/Container/Container.js","../../node_modules/@mantine/core/esm/Drawer/Drawer.context.js","../../node_modules/@mantine/core/esm/Drawer/DrawerRoot/DrawerRoot.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBase.context.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseCloseButton/ModalBaseCloseButton.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseCloseButton/ModalBaseCloseButton.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseOverlay/ModalBaseOverlay.styles.js","../../node_modules/@mantine/core/esm/Overlay/Overlay.styles.js","../../node_modules/@mantine/core/esm/Overlay/Overlay.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseOverlay/ModalBaseOverlay.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseContent/ModalBaseContent.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseContent/ModalBaseContent.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseHeader/ModalBaseHeader.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseTitle/ModalBaseTitle.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseTitle/ModalBaseTitle.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseBody/ModalBaseBody.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBaseBody/ModalBaseBody.js","../../node_modules/@mantine/core/esm/ModalBase/NativeScrollArea/NativeScrollArea.js","../../node_modules/@mantine/core/esm/ModalBase/use-lock-scroll.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBase.styles.js","../../node_modules/@mantine/core/esm/ModalBase/ModalBase.js","../../node_modules/@mantine/core/esm/Drawer/DrawerRoot/DrawerRoot.js","../../node_modules/@mantine/core/esm/Drawer/DrawerContent/DrawerContent.js","../../node_modules/@mantine/core/esm/Drawer/Drawer.js","../../node_modules/@mantine/core/esm/Flex/flex-props.js","../../node_modules/@mantine/core/esm/Flex/Flex.js","../../node_modules/@mantine/core/esm/Grid/Grid.context.js","../../node_modules/@mantine/core/esm/Grid/Col/Col.styles.js","../../node_modules/@mantine/core/esm/Grid/Col/Col.js","../../node_modules/@mantine/core/esm/Grid/Grid.styles.js","../../node_modules/@mantine/core/esm/Grid/Grid.js","../../node_modules/@mantine/core/esm/Group/filter-falsy-children/filter-falsy-children.js","../../node_modules/@mantine/core/esm/Group/Group.styles.js","../../node_modules/@mantine/core/esm/Group/Group.js","../../node_modules/@mantine/core/esm/Floating/use-delayed-hover.js","../../node_modules/@mantine/core/esm/Menu/Menu.errors.js","../../node_modules/@mantine/core/esm/Menu/Menu.context.js","../../node_modules/@mantine/core/esm/Menu/MenuDivider/MenuDivider.styles.js","../../node_modules/@mantine/core/esm/Menu/MenuDivider/MenuDivider.js","../../node_modules/@mantine/core/esm/Menu/MenuDropdown/MenuDropdown.js","../../node_modules/@mantine/core/esm/Menu/MenuItem/MenuItem.styles.js","../../node_modules/@mantine/core/esm/Menu/MenuItem/MenuItem.js","../../node_modules/@mantine/core/esm/Menu/MenuLabel/MenuLabel.styles.js","../../node_modules/@mantine/core/esm/Menu/MenuLabel/MenuLabel.js","../../node_modules/@mantine/core/esm/Menu/MenuTarget/MenuTarget.js","../../node_modules/@mantine/core/esm/Menu/Menu.styles.js","../../node_modules/@mantine/core/esm/Menu/Menu.js","../../node_modules/@mantine/core/esm/Modal/Modal.context.js","../../node_modules/@mantine/core/esm/Modal/ModalRoot/ModalRoot.styles.js","../../node_modules/@mantine/core/esm/Modal/ModalRoot/ModalRoot.js","../../node_modules/@mantine/core/esm/Modal/ModalContent/ModalContent.js","../../node_modules/@mantine/core/esm/Modal/Modal.js","../../node_modules/@mantine/core/esm/TextInput/TextInput.js","../../node_modules/@mantine/core/esm/Tooltip/TooltipGroup/TooltipGroup.context.js","../../node_modules/@mantine/core/esm/Tooltip/TooltipGroup/TooltipGroup.js","../../node_modules/@mantine/core/esm/Tooltip/Tooltip.styles.js","../../node_modules/@mantine/core/esm/Tooltip/Tooltip.errors.js","../../node_modules/@mantine/core/esm/Tooltip/TooltipFloating/use-floating-tooltip.js","../../node_modules/@mantine/core/esm/Tooltip/TooltipFloating/TooltipFloating.js","../../node_modules/@mantine/core/esm/Tooltip/use-tooltip.js","../../node_modules/@mantine/core/esm/Tooltip/Tooltip.js","../../node_modules/@mantine/core/esm/Space/Space.js","../../node_modules/@mantine/core/esm/Stack/Stack.styles.js","../../node_modules/@mantine/core/esm/Stack/Stack.js","../../node_modules/@mantine/core/esm/Title/Title.styles.js","../../node_modules/@mantine/core/esm/Title/Title.js","../../node_modules/@mantine/modals/esm/context.js","../../node_modules/@mantine/modals/esm/use-modals/use-modals.js","../../node_modules/@mantine/modals/esm/ConfirmModal.js","../../node_modules/@mantine/modals/esm/reducer.js","../../node_modules/@mantine/modals/esm/events.js","../../node_modules/@mantine/modals/esm/ModalsProvider.js","../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/react-fast-compare/index.js","../../node_modules/invariant/browser.js","../../node_modules/shallowequal/index.js","../../node_modules/react-helmet-async/lib/index.module.js","../../node_modules/@tanstack/query-sync-storage-persister/build/lib/index.mjs","../../node_modules/@tanstack/query-core/build/lib/subscribable.mjs","../../node_modules/@tanstack/query-core/build/lib/utils.mjs","../../node_modules/@tanstack/query-core/build/lib/focusManager.mjs","../../node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","../../node_modules/@tanstack/query-core/build/lib/retryer.mjs","../../node_modules/@tanstack/query-core/build/lib/logger.mjs","../../node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","../../node_modules/@tanstack/query-core/build/lib/removable.mjs","../../node_modules/@tanstack/query-core/build/lib/query.mjs","../../node_modules/@tanstack/query-core/build/lib/queryCache.mjs","../../node_modules/@tanstack/query-core/build/lib/mutation.mjs","../../node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","../../node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","../../node_modules/@tanstack/query-core/build/lib/queryClient.mjs","../../node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","../../node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","../../node_modules/@tanstack/query-core/build/lib/hydration.mjs","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs","../../node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","../../node_modules/@tanstack/react-query/build/lib/isRestoring.mjs","../../node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs","../../node_modules/@tanstack/react-query/build/lib/utils.mjs","../../node_modules/@tanstack/react-query/build/lib/useMutation.mjs","../../node_modules/@tanstack/query-persist-client-core/build/lib/persist.mjs","../../node_modules/viem/_esm/utils/chain/defineChain.js","../../node_modules/viem/_esm/errors/version.js","../../node_modules/viem/_esm/errors/utils.js","../../node_modules/viem/_esm/errors/base.js","../../node_modules/viem/_esm/errors/encoding.js","../../node_modules/viem/_esm/utils/data/isHex.js","../../node_modules/viem/_esm/utils/data/size.js","../../node_modules/viem/_esm/utils/data/trim.js","../../node_modules/viem/_esm/errors/data.js","../../node_modules/viem/_esm/utils/data/pad.js","../../node_modules/viem/_esm/utils/encoding/toHex.js","../../node_modules/viem/_esm/utils/encoding/toBytes.js","../../node_modules/viem/_esm/utils/encoding/fromHex.js","../../node_modules/viem/_esm/utils/formatters/transaction.js","../../node_modules/viem/_esm/utils/formatters/block.js","../../node_modules/viem/_esm/utils/formatters/log.js","../../node_modules/viem/_esm/utils/formatters/transactionReceipt.js","../../node_modules/viem/_esm/utils/formatters/transactionRequest.js","../../node_modules/viem/_esm/errors/address.js","../../node_modules/viem/_esm/errors/chain.js","../../node_modules/viem/_esm/constants/unit.js","../../node_modules/viem/_esm/utils/unit/formatUnits.js","../../node_modules/viem/_esm/utils/unit/formatGwei.js","../../node_modules/viem/_esm/errors/node.js","../../node_modules/viem/_esm/utils/address/isAddress.js","../../node_modules/viem/_esm/utils/data/concat.js","../../node_modules/abitype/dist/esm/regex.js","../../node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","../../node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","../../node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","../../node_modules/viem/_esm/utils/getAction.js","../../node_modules/viem/_esm/utils/abi/formatAbiItem.js","../../node_modules/viem/_esm/errors/abi.js","../../node_modules/viem/_esm/errors/log.js","../../node_modules/viem/_esm/utils/hash/normalizeSignature.js","../../node_modules/viem/_esm/utils/hash/getFunctionSignature.js","../../node_modules/viem/_esm/utils/hash/getEventSignature.js","../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/_u64.js","../../node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/sha3.js","../../node_modules/viem/_esm/utils/hash/keccak256.js","../../node_modules/viem/_esm/utils/hash/getEventSelector.js","../../node_modules/viem/_esm/utils/data/slice.js","../../node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","../../node_modules/viem/_esm/utils/hash/getFunctionSelector.js","../../node_modules/viem/_esm/utils/abi/getAbiItem.js","../../node_modules/viem/_esm/utils/abi/encodeEventTopics.js","../../node_modules/viem/_esm/utils/filters/createFilterRequestScope.js","../../node_modules/viem/_esm/actions/public/createContractEventFilter.js","../../node_modules/viem/_esm/accounts/utils/parseAccount.js","../../node_modules/viem/_esm/utils/abi/encodeFunctionData.js","../../node_modules/viem/_esm/constants/solidity.js","../../node_modules/viem/_esm/utils/address/getAddress.js","../../node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","../../node_modules/viem/_esm/utils/abi/decodeErrorResult.js","../../node_modules/viem/_esm/utils/stringify.js","../../node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","../../node_modules/viem/_esm/utils/unit/formatEther.js","../../node_modules/viem/_esm/errors/transaction.js","../../node_modules/viem/_esm/errors/contract.js","../../node_modules/viem/_esm/errors/request.js","../../node_modules/viem/_esm/errors/rpc.js","../../node_modules/viem/_esm/utils/errors/getContractError.js","../../node_modules/viem/_esm/errors/account.js","../../node_modules/viem/_esm/errors/estimateGas.js","../../node_modules/viem/_esm/utils/errors/getNodeError.js","../../node_modules/viem/_esm/utils/errors/getEstimateGasError.js","../../node_modules/viem/_esm/utils/formatters/extract.js","../../node_modules/viem/_esm/utils/transaction/assertRequest.js","../../node_modules/viem/_esm/errors/fee.js","../../node_modules/viem/_esm/errors/block.js","../../node_modules/viem/_esm/actions/public/getBlock.js","../../node_modules/viem/_esm/actions/public/getGasPrice.js","../../node_modules/viem/_esm/actions/public/estimateMaxPriorityFeePerGas.js","../../node_modules/viem/_esm/actions/public/estimateFeesPerGas.js","../../node_modules/viem/_esm/actions/public/getTransactionCount.js","../../node_modules/viem/_esm/utils/transaction/getTransactionType.js","../../node_modules/viem/_esm/actions/wallet/prepareTransactionRequest.js","../../node_modules/viem/_esm/actions/public/estimateGas.js","../../node_modules/viem/_esm/actions/public/estimateContractGas.js","../../node_modules/viem/_esm/utils/abi/decodeEventLog.js","../../node_modules/viem/_esm/actions/public/getLogs.js","../../node_modules/viem/_esm/actions/public/getContractEvents.js","../../node_modules/viem/_esm/utils/abi/decodeFunctionResult.js","../../node_modules/viem/_esm/constants/abis.js","../../node_modules/viem/_esm/constants/contract.js","../../node_modules/viem/_esm/utils/chain/getChainContractAddress.js","../../node_modules/viem/_esm/utils/errors/getCallError.js","../../node_modules/viem/_esm/utils/promise/createBatchScheduler.js","../../node_modules/viem/_esm/actions/public/call.js","../../node_modules/viem/_esm/actions/public/readContract.js","../../node_modules/viem/_esm/actions/public/simulateContract.js","../../node_modules/viem/_esm/utils/observe.js","../../node_modules/viem/_esm/utils/wait.js","../../node_modules/viem/_esm/utils/poll.js","../../node_modules/viem/_esm/utils/promise/withCache.js","../../node_modules/viem/_esm/actions/public/getBlockNumber.js","../../node_modules/viem/_esm/actions/public/getFilterChanges.js","../../node_modules/viem/_esm/actions/public/uninstallFilter.js","../../node_modules/viem/_esm/actions/public/watchContractEvent.js","../../node_modules/viem/_esm/utils/chain/assertCurrentChain.js","../../node_modules/viem/_esm/utils/errors/getTransactionError.js","../../node_modules/viem/_esm/actions/public/getChainId.js","../../node_modules/viem/_esm/actions/wallet/sendRawTransaction.js","../../node_modules/viem/_esm/actions/wallet/sendTransaction.js","../../node_modules/viem/_esm/actions/wallet/writeContract.js","../../node_modules/viem/_esm/actions/wallet/addChain.js","../../node_modules/viem/_esm/utils/uid.js","../../node_modules/viem/_esm/clients/createClient.js","../../node_modules/viem/_esm/utils/promise/withRetry.js","../../node_modules/viem/_esm/utils/buildRequest.js","../../node_modules/viem/_esm/clients/transports/createTransport.js","../../node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/viem/_esm/clients/transports/fallback.js","../../node_modules/viem/_esm/errors/transport.js","../../node_modules/isows/_esm/utils.js","../../node_modules/isows/_esm/native.js","../../node_modules/viem/_esm/utils/promise/withTimeout.js","../../node_modules/viem/_esm/utils/rpc.js","../../node_modules/viem/_esm/clients/transports/http.js","../../node_modules/viem/_esm/utils/ens/errors.js","../../node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","../../node_modules/viem/_esm/utils/ens/namehash.js","../../node_modules/viem/_esm/utils/ens/encodeLabelhash.js","../../node_modules/viem/_esm/utils/ens/labelhash.js","../../node_modules/viem/_esm/utils/ens/packetToBytes.js","../../node_modules/viem/_esm/actions/ens/getEnsAddress.js","../../node_modules/viem/_esm/errors/ens.js","../../node_modules/viem/_esm/utils/ens/avatar/utils.js","../../node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","../../node_modules/viem/_esm/actions/ens/getEnsText.js","../../node_modules/viem/_esm/actions/ens/getEnsAvatar.js","../../node_modules/viem/_esm/actions/ens/getEnsName.js","../../node_modules/viem/_esm/actions/ens/getEnsResolver.js","../../node_modules/viem/_esm/actions/public/createBlockFilter.js","../../node_modules/viem/_esm/actions/public/createEventFilter.js","../../node_modules/viem/_esm/actions/public/createPendingTransactionFilter.js","../../node_modules/viem/_esm/actions/public/getBalance.js","../../node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","../../node_modules/viem/_esm/actions/public/getBytecode.js","../../node_modules/viem/_esm/utils/formatters/feeHistory.js","../../node_modules/viem/_esm/actions/public/getFeeHistory.js","../../node_modules/viem/_esm/actions/public/getFilterLogs.js","../../node_modules/viem/_esm/utils/regex.js","../../node_modules/viem/_esm/utils/signature/hashTypedData.js","../../node_modules/viem/_esm/utils/typedData.js","../../node_modules/viem/_esm/utils/abi/encodeDeployData.js","../../node_modules/viem/_esm/constants/strings.js","../../node_modules/viem/_esm/utils/signature/hashMessage.js","../../node_modules/viem/_esm/utils/unit/parseUnits.js","../../node_modules/viem/_esm/utils/unit/parseEther.js","../../node_modules/viem/_esm/utils/formatters/proof.js","../../node_modules/viem/_esm/actions/public/getProof.js","../../node_modules/viem/_esm/actions/public/getStorageAt.js","../../node_modules/viem/_esm/actions/public/getTransaction.js","../../node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","../../node_modules/viem/_esm/actions/public/getTransactionReceipt.js","../../node_modules/viem/_esm/actions/public/multicall.js","../../node_modules/viem/_esm/constants/contracts.js","../../node_modules/@noble/curves/esm/abstract/utils.js","../../node_modules/viem/_esm/utils/data/isBytesEqual.js","../../node_modules/viem/_esm/actions/public/verifyHash.js","../../node_modules/viem/_esm/actions/public/verifyMessage.js","../../node_modules/viem/_esm/actions/public/verifyTypedData.js","../../node_modules/viem/_esm/actions/public/watchBlockNumber.js","../../node_modules/viem/_esm/actions/public/waitForTransactionReceipt.js","../../node_modules/viem/_esm/actions/public/watchBlocks.js","../../node_modules/viem/_esm/actions/public/watchEvent.js","../../node_modules/viem/_esm/actions/public/watchPendingTransactions.js","../../node_modules/viem/_esm/clients/decorators/public.js","../../node_modules/viem/_esm/clients/createPublicClient.js","../../node_modules/viem/_esm/actions/wallet/deployContract.js","../../node_modules/viem/_esm/actions/wallet/getAddresses.js","../../node_modules/viem/_esm/actions/wallet/getPermissions.js","../../node_modules/viem/_esm/actions/wallet/requestAddresses.js","../../node_modules/viem/_esm/actions/wallet/requestPermissions.js","../../node_modules/viem/_esm/actions/wallet/signMessage.js","../../node_modules/viem/_esm/actions/wallet/signTransaction.js","../../node_modules/viem/_esm/actions/wallet/signTypedData.js","../../node_modules/viem/_esm/actions/wallet/switchChain.js","../../node_modules/viem/_esm/actions/wallet/watchAsset.js","../../node_modules/viem/_esm/clients/decorators/wallet.js","../../node_modules/viem/_esm/clients/createWalletClient.js","../../node_modules/viem/_esm/clients/transports/webSocket.js","../../node_modules/viem/_esm/chains/definitions/goerli.js","../../node_modules/viem/_esm/chains/definitions/mainnet.js","../../node_modules/@wagmi/connectors/dist/chunk-UGBGYVBH.js","../../node_modules/@wagmi/connectors/dist/chunk-OQILYQDO.js","../../node_modules/@wagmi/connectors/node_modules/eventemitter3/index.js","../../node_modules/@wagmi/connectors/dist/chunk-W65LBPLT.js","../../node_modules/@wagmi/connectors/dist/chunk-ZJ3P53W7.js","../../node_modules/@wagmi/core/dist/chunk-MQXBDTVK.js","../../node_modules/zustand/esm/middleware.mjs","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/@wagmi/core/dist/chunk-TSH6VVF4.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/wagmi/dist/index.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/ours/primordials.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/ours/util.js","../../node_modules/abort-controller/browser.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/ours/errors.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/validators.js","../../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.cjs","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/utils.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/events/events.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/legacy.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/state.js","../../node_modules/safe-buffer/index.js","../../node_modules/string_decoder/lib/string_decoder.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/from.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/readable.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/writable.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/duplexify.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/duplex.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/transform.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/passthrough.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/compose.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/internal/streams/operators.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/stream/promises.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/stream.js","../../node_modules/@toruslabs/openlogin-jrpc/node_modules/readable-stream/lib/ours/browser.js","../../node_modules/fast-safe-stringify/index.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-QVEKZRZ2.js","../../node_modules/pony-cause/lib/error-with-cause.mjs","../../node_modules/pony-cause/lib/helpers.mjs","../../node_modules/pony-cause/index.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-IZC266HS.js","../../node_modules/@metamask/rpc-errors/node_modules/superstruct/dist/index.mjs","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-6ZDHSOUV.js","../../node_modules/@scure/base/lib/index.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-QEPVHEP7.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-VFXTVNXN.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-4RMX5YWE.js","../../node_modules/semver/internal/constants.js","../../node_modules/semver/internal/debug.js","../../node_modules/semver/internal/re.js","../../node_modules/semver/internal/parse-options.js","../../node_modules/semver/internal/identifiers.js","../../node_modules/semver/classes/semver.js","../../node_modules/semver/functions/parse.js","../../node_modules/semver/functions/valid.js","../../node_modules/semver/functions/clean.js","../../node_modules/semver/functions/inc.js","../../node_modules/semver/functions/diff.js","../../node_modules/semver/functions/major.js","../../node_modules/semver/functions/minor.js","../../node_modules/semver/functions/patch.js","../../node_modules/semver/functions/prerelease.js","../../node_modules/semver/functions/compare.js","../../node_modules/semver/functions/rcompare.js","../../node_modules/semver/functions/compare-loose.js","../../node_modules/semver/functions/compare-build.js","../../node_modules/semver/functions/sort.js","../../node_modules/semver/functions/rsort.js","../../node_modules/semver/functions/gt.js","../../node_modules/semver/functions/lt.js","../../node_modules/semver/functions/eq.js","../../node_modules/semver/functions/neq.js","../../node_modules/semver/functions/gte.js","../../node_modules/semver/functions/lte.js","../../node_modules/semver/functions/cmp.js","../../node_modules/semver/functions/coerce.js","../../node_modules/lru-cache/node_modules/yallist/iterator.js","../../node_modules/lru-cache/node_modules/yallist/yallist.js","../../node_modules/lru-cache/index.js","../../node_modules/semver/classes/range.js","../../node_modules/semver/classes/comparator.js","../../node_modules/semver/functions/satisfies.js","../../node_modules/semver/ranges/to-comparators.js","../../node_modules/semver/ranges/max-satisfying.js","../../node_modules/semver/ranges/min-satisfying.js","../../node_modules/semver/ranges/min-version.js","../../node_modules/semver/ranges/valid.js","../../node_modules/semver/ranges/outside.js","../../node_modules/semver/ranges/gtr.js","../../node_modules/semver/ranges/ltr.js","../../node_modules/semver/ranges/intersects.js","../../node_modules/semver/ranges/simplify.js","../../node_modules/semver/ranges/subset.js","../../node_modules/semver/index.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-4D6XQBHA.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-OLLG4H35.js","../../node_modules/ms/index.js","../../node_modules/debug/src/common.js","../../node_modules/debug/src/browser.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-2LBGT4GH.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-U7ZUGCE7.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-6NZW4WK4.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-E4C7EW4R.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-DHVKFDHQ.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-3W5G4CYI.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/chunk-Z2RGWDD7.js","../../node_modules/@metamask/rpc-errors/node_modules/@metamask/utils/dist/index.js","../../node_modules/@metamask/rpc-errors/dist/error-constants.js","../../node_modules/@metamask/rpc-errors/dist/utils.js","../../node_modules/@metamask/rpc-errors/dist/classes.js","../../node_modules/@metamask/rpc-errors/dist/errors.js","../../node_modules/@metamask/rpc-errors/dist/index.js","../../node_modules/wrappy/wrappy.js","../../node_modules/once/once.js","../../node_modules/end-of-stream/index.js","../../node_modules/node-stdlib-browser/esm/mock/empty.js","../../node_modules/pump/index.js","../../node_modules/@toruslabs/openlogin-jrpc/dist/openloginJrpc.esm.js","../../node_modules/base64url/dist/pad-string.js","../../node_modules/base64url/dist/base64url.js","../../node_modules/base64url/index.js","../../node_modules/@toruslabs/constants/dist/constants.esm.js","../../node_modules/@toruslabs/openlogin-utils/dist/openloginUtils.esm.js","../../node_modules/ts-custom-error/dist/custom-error.mjs","../../node_modules/lodash.merge/index.js","../../node_modules/loglevel/lib/loglevel.js","../../node_modules/@toruslabs/http-helpers/dist/httpHelpers.esm.js","../../node_modules/jwt-decode/build/esm/index.js","../../node_modules/@web3auth/base/dist/base.esm.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/_assert.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/crypto.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/utils.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/sha256.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/abstract/utils.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/abstract/modular.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/abstract/curve.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/abstract/weierstrass.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/abstract/hash-to-curve.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/hmac.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/_shortw_utils.js","../../node_modules/ethereum-cryptography/node_modules/@noble/curves/esm/secp256k1.js","../../node_modules/ethereum-cryptography/esm/utils.js","../../node_modules/@ethereumjs/util/dist/esm/internal.js","../../node_modules/@ethereumjs/util/dist/esm/helpers.js","../../node_modules/@ethereumjs/util/dist/esm/bytes.js","../../node_modules/@ethereumjs/util/dist/esm/constants.js","../../node_modules/@ethereumjs/util/dist/esm/units.js","../../node_modules/@ethereumjs/rlp/dist/esm/index.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/_u64.js","../../node_modules/ethereum-cryptography/node_modules/@noble/hashes/esm/sha3.js","../../node_modules/ethereum-cryptography/esm/keccak.js","../../node_modules/@ethereumjs/util/dist/esm/db.js","../../node_modules/@ethereumjs/util/dist/esm/types.js","../../node_modules/@ethereumjs/util/dist/esm/signature.js","../../node_modules/bignumber.js/bignumber.mjs","../../node_modules/bowser/src/constants.js","../../node_modules/bowser/src/utils.js","../../node_modules/bowser/src/parser-browsers.js","../../node_modules/bowser/src/parser-os.js","../../node_modules/bowser/src/parser-platforms.js","../../node_modules/bowser/src/parser-engines.js","../../node_modules/bowser/src/parser.js","../../node_modules/bowser/src/bowser.js","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/webtransport.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../node_modules/randombytes/browser.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/has-symbols/shams.js","../../node_modules/has-tostringtag/shams.js","../../node_modules/has-symbols/index.js","../../node_modules/has-proto/index.js","../../node_modules/function-bind/implementation.js","../../node_modules/function-bind/index.js","../../node_modules/has/src/index.js","../../node_modules/get-intrinsic/index.js","../../node_modules/has-property-descriptors/index.js","../../node_modules/gopd/index.js","../../node_modules/define-data-property/index.js","../../node_modules/set-function-length/index.js","../../node_modules/call-bind/index.js","../../node_modules/call-bind/callBound.js","../../node_modules/is-arguments/index.js","../../node_modules/is-generator-function/index.js","../../node_modules/is-callable/index.js","../../node_modules/for-each/index.js","../../node_modules/available-typed-arrays/index.js","../../node_modules/which-typed-array/index.js","../../node_modules/is-typed-array/index.js","../../node_modules/util/support/types.js","../../node_modules/util/support/isBufferBrowser.js","../../node_modules/util/util.js","../../node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/readable-stream/errors-browser.js","../../node_modules/readable-stream/lib/internal/streams/state.js","../../node_modules/util-deprecate/browser.js","../../node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../node_modules/readable-stream/lib/internal/streams/async_iterator.js","../../node_modules/readable-stream/lib/internal/streams/from-browser.js","../../node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/readable-stream/lib/internal/streams/pipeline.js","../../node_modules/readable-stream/readable-browser.js","../../node_modules/hash-base/index.js","../../node_modules/md5.js/index.js","../../node_modules/ripemd160/index.js","../../node_modules/sha.js/hash.js","../../node_modules/sha.js/sha.js","../../node_modules/sha.js/sha1.js","../../node_modules/sha.js/sha256.js","../../node_modules/sha.js/sha224.js","../../node_modules/sha.js/sha512.js","../../node_modules/sha.js/sha384.js","../../node_modules/sha.js/index.js","../../node_modules/stream-browserify/index.js","../../node_modules/cipher-base/index.js","../../node_modules/create-hash/browser.js","../../node_modules/create-hmac/legacy.js","../../node_modules/create-hash/md5.js","../../node_modules/create-hmac/browser.js","../../node_modules/browserify-sign/algos.js","../../node_modules/pbkdf2/lib/precondition.js","../../node_modules/pbkdf2/lib/default-encoding.js","../../node_modules/pbkdf2/lib/to-buffer.js","../../node_modules/pbkdf2/lib/sync-browser.js","../../node_modules/pbkdf2/lib/async.js","../../node_modules/pbkdf2/browser.js","../../node_modules/des.js/lib/des/utils.js","../../node_modules/minimalistic-assert/index.js","../../node_modules/des.js/lib/des/cipher.js","../../node_modules/des.js/lib/des/des.js","../../node_modules/des.js/lib/des/cbc.js","../../node_modules/des.js/lib/des/ede.js","../../node_modules/des.js/lib/des.js","../../node_modules/browserify-des/index.js","../../node_modules/browserify-aes/modes/ecb.js","../../node_modules/buffer-xor/index.js","../../node_modules/browserify-aes/modes/cbc.js","../../node_modules/browserify-aes/modes/cfb.js","../../node_modules/browserify-aes/modes/cfb8.js","../../node_modules/browserify-aes/modes/cfb1.js","../../node_modules/browserify-aes/modes/ofb.js","../../node_modules/browserify-aes/incr32.js","../../node_modules/browserify-aes/modes/ctr.js","../../node_modules/browserify-aes/modes/index.js","../../node_modules/browserify-aes/aes.js","../../node_modules/browserify-aes/ghash.js","../../node_modules/browserify-aes/authCipher.js","../../node_modules/browserify-aes/streamCipher.js","../../node_modules/evp_bytestokey/index.js","../../node_modules/browserify-aes/encrypter.js","../../node_modules/browserify-aes/decrypter.js","../../node_modules/browserify-aes/browser.js","../../node_modules/browserify-des/modes.js","../../node_modules/browserify-cipher/browser.js","../../node_modules/bn.js/lib/bn.js","../../node_modules/brorand/index.js","../../node_modules/miller-rabin/lib/mr.js","../../node_modules/diffie-hellman/lib/generatePrime.js","../../node_modules/diffie-hellman/lib/dh.js","../../node_modules/diffie-hellman/browser.js","../../node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","../../node_modules/browserify-rsa/index.js","../../node_modules/minimalistic-crypto-utils/lib/utils.js","../../node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/hash.js/lib/hash/utils.js","../../node_modules/hash.js/lib/hash/common.js","../../node_modules/hash.js/lib/hash/sha/common.js","../../node_modules/hash.js/lib/hash/sha/1.js","../../node_modules/hash.js/lib/hash/sha/256.js","../../node_modules/hash.js/lib/hash/sha/224.js","../../node_modules/hash.js/lib/hash/sha/512.js","../../node_modules/hash.js/lib/hash/sha/384.js","../../node_modules/hash.js/lib/hash/sha.js","../../node_modules/hash.js/lib/hash/ripemd.js","../../node_modules/hash.js/lib/hash/hmac.js","../../node_modules/hash.js/lib/hash.js","../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/hmac-drbg/lib/hmac-drbg.js","../../node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/elliptic/lib/elliptic.js","../../node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","../../node_modules/safer-buffer/safer.js","../../node_modules/asn1.js/lib/asn1/base/reporter.js","../../node_modules/asn1.js/lib/asn1/base/buffer.js","../../node_modules/asn1.js/lib/asn1/base/node.js","../../node_modules/asn1.js/lib/asn1/constants/der.js","../../node_modules/asn1.js/lib/asn1/encoders/der.js","../../node_modules/asn1.js/lib/asn1/encoders/pem.js","../../node_modules/asn1.js/lib/asn1/encoders/index.js","../../node_modules/asn1.js/lib/asn1/decoders/der.js","../../node_modules/asn1.js/lib/asn1/decoders/pem.js","../../node_modules/asn1.js/lib/asn1/decoders/index.js","../../node_modules/asn1.js/lib/asn1/api.js","../../node_modules/asn1.js/lib/asn1/base/index.js","../../node_modules/asn1.js/lib/asn1/constants/index.js","../../node_modules/asn1.js/lib/asn1.js","../../node_modules/parse-asn1/certificate.js","../../node_modules/parse-asn1/asn1.js","../../node_modules/parse-asn1/fixProc.js","../../node_modules/parse-asn1/index.js","../../node_modules/browserify-sign/browser/sign.js","../../node_modules/browserify-sign/browser/verify.js","../../node_modules/browserify-sign/browser/index.js","../../node_modules/create-ecdh/browser.js","../../node_modules/public-encrypt/mgf.js","../../node_modules/public-encrypt/xor.js","../../node_modules/public-encrypt/withPublic.js","../../node_modules/public-encrypt/publicEncrypt.js","../../node_modules/public-encrypt/privateDecrypt.js","../../node_modules/public-encrypt/browser.js","../../node_modules/randomfill/browser.js","../../node_modules/crypto-browserify/index.js","../../node_modules/@toruslabs/eccrypto/dist/eccrypto.esm.js","../../node_modules/jsonify/lib/parse.js","../../node_modules/jsonify/lib/stringify.js","../../node_modules/jsonify/index.js","../../node_modules/object-keys/isArguments.js","../../node_modules/object-keys/implementation.js","../../node_modules/object-keys/index.js","../../node_modules/json-stable-stringify/index.js","../../node_modules/@toruslabs/metadata-helpers/dist/metadataHelpers.esm.js","../../node_modules/lodash/lodash.js","../../node_modules/@toruslabs/base-controllers/dist/baseControllers.esm.js","../../node_modules/json-rpc-random-id/index.js","../../node_modules/@web3auth/base-provider/dist/baseProvider.esm.js","../../node_modules/@web3auth/base-plugin/dist/basePlugin.esm.js","../../node_modules/@web3auth/no-modal/dist/noModal.esm.js","../../node_modules/lodash.clonedeep/index.js","../../node_modules/void-elements/index.js","../../node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","../../node_modules/react-i18next/dist/es/utils.js","../../node_modules/react-i18next/dist/es/unescape.js","../../node_modules/react-i18next/dist/es/defaults.js","../../node_modules/react-i18next/dist/es/i18nInstance.js","../../node_modules/react-i18next/dist/es/TransWithoutContext.js","../../node_modules/react-i18next/dist/es/initReactI18next.js","../../node_modules/react-i18next/dist/es/context.js","../../node_modules/react-i18next/dist/es/Trans.js","../../node_modules/react-i18next/dist/es/useTranslation.js","../../node_modules/react-i18next/dist/es/I18nextProvider.js","../../node_modules/i18next/dist/esm/i18next.js","../../node_modules/toggle-selection/index.js","../../node_modules/copy-to-clipboard/index.js","../../node_modules/lodash.isequal/index.js","../../node_modules/qrcode-generator/qrcode.js","../../node_modules/react-qrcode-logo/dist/index.js","../../node_modules/classnames/index.js","../../node_modules/@web3auth/ui/dist/index.js","../../node_modules/@web3auth/modal/dist/modal.esm.js","../../node_modules/@toruslabs/base-session-manager/dist/baseSessionManager.esm.js","../../node_modules/@toruslabs/openlogin-session-manager/dist/openloginSessionManager.esm.js","../../node_modules/@toruslabs/secure-pub-sub/dist/securePubSub.esm.js","../../node_modules/@toruslabs/openlogin/dist/openlogin.esm.js","../../node_modules/@web3auth/openlogin-adapter/dist/openloginAdapter.esm.js","../../node_modules/@web3auth/web3auth-wagmi-connector/dist/web3authWagmiConnector.esm.js","../../node_modules/@wagmi/core/dist/providers/public.js","../../src/utils/helpers.ts","../../src/constants/blockchain.ts","../../src/plugins/auth/config.tsx","../../src/plugins/auth/AuthProvider/types/AuthActions.ts","../../src/plugins/auth/AuthProvider/types/AuthInternalState.ts","../../src/plugins/auth/AuthProvider/effects/_useSyncWithWagmi.ts","../../src/plugins/auth/AuthProvider/effects/_useOnModalClose.ts","../../src/plugins/auth/AuthProvider/effects/_useConnectDisconnect.ts","../../node_modules/viem/node_modules/@adraffy/ens-normalize/dist/index.mjs","../../node_modules/viem/_esm/utils/ens/normalize.js","../../src/hooks/useConst.ts","../../src/utils/utils.tsx","../../src/hooks/useViemProvider.ts","../../node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js","../../node_modules/@tabler/icons-react/dist/esm/createReactComponent.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconBrandDiscord.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconBrandX.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronUp.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconDotsVertical.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconLoader.js","../../node_modules/@tabler/icons-react/dist/esm/icons/IconShare2.js","../../node_modules/goober/dist/goober.modern.js","../../node_modules/notistack/notistack.esm.js","../../src/assets/avatar/01.png","../../src/assets/avatar/02.png","../../src/assets/avatar/03.png","../../src/assets/avatar/04.png","../../src/components/Snackbar.tsx","../../src/plugins/auth/AuthProvider/effects/functions.tsx","../../src/hooks/usePromiseState.ts","../../src/plugins/auth/AuthProvider/effects/_useStateTransitions.ts","../../src/plugins/auth/AuthProvider/effects/index.tsx","../../src/plugins/auth/AuthProvider/reducer.ts","../../src/plugins/auth/AuthProvider/index.tsx","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../src/components/ErrorBoundaryFallback.tsx","../../src/plugins/auth/RouteRedirectors/utils.ts","../../src/assets/gifs/l1_loading_black.gif","../../src/assets/gifs/l1_loading_white.gif","../../src/assets/gifs/l1_loading_bg2_dark.gif","../../src/assets/gifs/l1_loading_bg2_white.gif","../../src/components/MediaWrappers/IconWrapper.tsx","../../src/components/Loading.tsx","../../src/plugins/auth/RouteRedirectors/notAuthenticated.tsx","../../src/plugins/auth/RouteRedirectors/RootRedirector.tsx","../../src/plugins/auth/RouteRedirectors/authenticated.tsx","../../node_modules/react-ga4/dist/gtag.js","../../node_modules/react-ga4/dist/format.js","../../node_modules/react-ga4/dist/ga4.js","../../node_modules/react-ga4/dist/index.js","../../src/plugins/Analytics.tsx","../../src/components/Buttons/RootButton.tsx","../../src/components/Buttons/Web3Button.tsx","../../src/hooks/useMountedRef.ts","../../src/hooks/useStorage.ts","../../src/hooks/useLocalStorage.ts","../../src/assets/lamina1_white.png","../../src/assets/lamina1_black.png","../../src/assets/pattern.jpg","../../src/assets/pattern_light.jpg","../../src/components/Disclaimer.tsx","../../src/assets/L1logo_lg_512_light.png","../../src/assets/L1logo_lg_512_dark.png","../../src/components/LandingPage.tsx","../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../src/styled/components.tsx","../../src/assets/icons/home_black.svg","../../src/assets/icons/home_white.svg","../../src/components/NotFound.tsx","../../src/components/Buttons/HeaderButton.tsx","../../src/hooks/useCopyToClipboard.ts","../../src/assets/icons/copiedClipboard_green.svg","../../src/assets/icons/copiedClipboard_blue.svg","../../src/components/Buttons/CopyButton.tsx","../../src/components/User/UserHeader.tsx","../../src/components/Header/HeaderIconWrapper.tsx","../../src/assets/icons/airdrop_black.svg","../../src/assets/icons/airdrop_white.svg","../../src/assets/icons/send_black.svg","../../src/assets/icons/send_white.svg","../../src/assets/icons/activity_black.svg","../../src/assets/icons/activity_white.svg","../../src/assets/icons/items_black.svg","../../src/assets/icons/items_white.svg","../../src/assets/icons/studio_black.svg","../../src/assets/icons/studio_white.svg","../../src/assets/icons/iconic_black.svg","../../src/assets/icons/iconic_white.svg","../../src/components/Footer.tsx","../../src/components/Header/Header.tsx","../../src/components/AppFrame.tsx","../../src/components/Modals/QRCodeModal.tsx","../../src/components/Seo.tsx","../../src/components/Theme/themes.ts","../../node_modules/@apollo/client/link/subscriptions/index.js","../../node_modules/@apollo/client/link/retry/delayFunction.js","../../node_modules/@apollo/client/link/retry/retryFunction.js","../../node_modules/@apollo/client/link/retry/retryLink.js","../../node_modules/graphql-ws/lib/utils.mjs","../../node_modules/graphql-ws/lib/common.mjs","../../node_modules/graphql-ws/lib/client.mjs","../../src/plugins/apollo.ts","../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../../node_modules/i18next-chained-backend/dist/esm/i18nextChainedBackend.js","../../node_modules/i18next-http-backend/esm/utils.js","../../node_modules/i18next-http-backend/node_modules/cross-fetch/dist/browser-ponyfill.js","../../node_modules/i18next-http-backend/esm/getFetch.cjs","../../node_modules/i18next-http-backend/esm/request.js","../../node_modules/i18next-http-backend/esm/index.js","../../node_modules/i18next-localstorage-backend/dist/esm/i18nextLocalStorageBackend.js","../../node_modules/i18next-resources-to-backend/dist/esm/index.js","../../src/plugins/i18n.tsx","../../src/plugins/SnackbarProvider.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __extends } from \"tslib\";\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\nvar InvariantError = /** @class */ (function (_super) {\n __extends(InvariantError, _super);\n function InvariantError(message) {\n if (message === void 0) { message = genericMessage; }\n var _this = _super.call(this, typeof message === \"number\"\n ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\"\n : message) || this;\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n return InvariantError;\n}(Error));\nexport { InvariantError };\nexport function invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\nvar verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\nfunction wrapConsoleMethod(name) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n var method = console[name] || console.log;\n return method.apply(console, arguments);\n }\n };\n}\n(function (invariant) {\n invariant.debug = wrapConsoleMethod(\"debug\");\n invariant.log = wrapConsoleMethod(\"log\");\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {}));\nexport function setVerbosity(level) {\n var old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\nexport default invariant;\n//# sourceMappingURL=invariant.js.map","const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe.js\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) || maybe(function () { return maybe.constructor(\"return this\")(); }));\n//# sourceMappingURL=global.js.map","import global from \"./global.js\";\nimport { maybe } from \"./maybe.js\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n }\n catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () { return process.env.NODE_ENV; }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n return global[GLOBAL_KEY];\n }\n}\nexport default getDEV();\n//# sourceMappingURL=DEV.js.map","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { return global }) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\",\n },\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true,\n });\n needToRemove = true;\n }\n}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { inspect } from './inspect.mjs';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n /* c8 ignore next 6 */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n globalThis.process && globalThis.process.env.NODE_ENV === 'production'\n ? function instanceOf(value, constructor) {\n return value instanceof constructor;\n }\n : function instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (typeof value === 'object' && value !== null) {\n var _value$constructor;\n\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n ? value[Symbol.toStringTag]\n : (_value$constructor = value.constructor) === null ||\n _value$constructor === void 0\n ? void 0\n : _value$constructor.name;\n\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n }\n }\n\n return false;\n };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n return (\n isExecutableDefinitionNode(node) ||\n isTypeSystemDefinitionNode(node) ||\n isTypeSystemExtensionNode(node)\n );\n}\nexport function isExecutableDefinitionNode(node) {\n return (\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n}\nexport function isSelectionNode(node) {\n return (\n node.kind === Kind.FIELD ||\n node.kind === Kind.FRAGMENT_SPREAD ||\n node.kind === Kind.INLINE_FRAGMENT\n );\n}\nexport function isValueNode(node) {\n return (\n node.kind === Kind.VARIABLE ||\n node.kind === Kind.INT ||\n node.kind === Kind.FLOAT ||\n node.kind === Kind.STRING ||\n node.kind === Kind.BOOLEAN ||\n node.kind === Kind.NULL ||\n node.kind === Kind.ENUM ||\n node.kind === Kind.LIST ||\n node.kind === Kind.OBJECT\n );\n}\nexport function isConstValueNode(node) {\n return (\n isValueNode(node) &&\n (node.kind === Kind.LIST\n ? node.values.some(isConstValueNode)\n : node.kind === Kind.OBJECT\n ? node.fields.some((field) => isConstValueNode(field.value))\n : node.kind !== Kind.VARIABLE)\n );\n}\nexport function isTypeNode(node) {\n return (\n node.kind === Kind.NAMED_TYPE ||\n node.kind === Kind.LIST_TYPE ||\n node.kind === Kind.NON_NULL_TYPE\n );\n}\nexport function isTypeSystemDefinitionNode(node) {\n return (\n node.kind === Kind.SCHEMA_DEFINITION ||\n isTypeDefinitionNode(node) ||\n node.kind === Kind.DIRECTIVE_DEFINITION\n );\n}\nexport function isTypeDefinitionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n node.kind === Kind.UNION_TYPE_DEFINITION ||\n node.kind === Kind.ENUM_TYPE_DEFINITION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n );\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n node.kind === Kind.UNION_TYPE_EXTENSION ||\n node.kind === Kind.ENUM_TYPE_EXTENSION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n );\n}\n","import { remove } from \"ts-invariant/process/index.js\";\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}\n//# sourceMappingURL=fix-graphql.js.map","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV.js\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 39);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql.js\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, InvariantError };\ncheckDEV();\n//# sourceMappingURL=index.js.map","import { invariant } from \"../globals/index.js\";\nimport { visit, BREAK, } from 'graphql';\nexport function shouldInclude(_a, variables) {\n var directives = _a.directives;\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(directives).every(function (_a) {\n var directive = _a.directive, ifArgument = _a.ifArgument;\n var evaledValue = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[ifArgument.value.name.value];\n __DEV__ ? invariant(evaledValue !== void 0, \"Invalid variable referenced in @\".concat(directive.name.value, \" directive.\")) : invariant(evaledValue !== void 0, 40);\n }\n else {\n evaledValue = ifArgument.value.value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nexport function getDirectiveNames(root) {\n var names = [];\n visit(root, {\n Directive: function (node) {\n names.push(node.name.value);\n },\n });\n return names;\n}\nexport var hasAnyDirectives = function (names, root) { return hasDirectives(names, root, false); };\nexport var hasAllDirectives = function (names, root) { return hasDirectives(names, root, true); };\nexport function hasDirectives(names, root, all) {\n var nameSet = new Set(names);\n var uniqueCount = nameSet.size;\n visit(root, {\n Directive: function (node) {\n if (nameSet.delete(node.name.value) &&\n (!all || !nameSet.size)) {\n return BREAK;\n }\n },\n });\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\nexport function hasClientExports(document) {\n return document && hasDirectives(['client', 'export'], document, true);\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\nexport function getInclusionDirectives(directives) {\n var result = [];\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive))\n return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\".concat(directiveName, \" directive.\")) : invariant(directiveArguments && directiveArguments.length === 1, 41);\n var ifArgument = directiveArguments[0];\n __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\".concat(directiveName, \" directive.\")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 42);\n var ifValue = ifArgument.value;\n __DEV__ ? invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\".concat(directiveName, \" directive must be a variable or a boolean value.\")) : invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 43);\n result.push({ directive: directive, ifArgument: ifArgument });\n });\n }\n return result;\n}\n//# sourceMappingURL=directives.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant, InvariantError } from \"../globals/index.js\";\nexport function getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Found a \".concat(definition.operation, \" operation\").concat(definition.name ? \" named '\".concat(definition.name.value, \"'\") : '', \". \") +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(44);\n }\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n if (typeof actualFragmentName === 'undefined') {\n __DEV__ ? invariant(fragments.length === 1, \"Found \".concat(fragments.length, \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\")) : invariant(fragments.length === 1, 45);\n actualFragmentName = fragments[0].name.value;\n }\n var query = __assign(__assign({}, document), { definitions: __spreadArray([\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n }\n ], document.definitions, true) });\n return query;\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) { fragments = []; }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getFragmentFromSelection(selection, fragmentMap) {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n case 'FragmentSpread': {\n var fragmentName = selection.name.value;\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n var fragment = fragmentMap && fragmentMap[fragmentName];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(fragmentName)) : invariant(fragment, 46);\n return fragment || null;\n }\n default:\n return null;\n }\n}\n//# sourceMappingURL=fragments.js.map","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n//# sourceMappingURL=objects.js.map","import { InvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return { __ref: String(id) };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\nexport function isDocumentNode(value) {\n return (isNonNullObject(value) &&\n value.kind === \"Document\" &&\n Array.isArray(value.definitions));\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\n else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw __DEV__ ? new InvariantError(\"The inline argument \\\"\".concat(name.value, \"\\\" of kind \\\"\").concat(value.kind, \"\\\"\") +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.') : new InvariantError(55);\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n if (args &&\n directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return \"\".concat(directives['connection']['key'], \"(\").concat(stringify(filteredArgs_1), \")\");\n }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\".concat(stringifiedArgs, \")\");\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\".concat(key, \"(\").concat(stringify(directives[key]), \")\");\n }\n else {\n completeFieldName += \"@\".concat(key);\n }\n });\n }\n return completeFieldName;\n}, {\n setStringify: function (s) {\n var previous = stringify;\n stringify = s;\n return previous;\n },\n});\nvar stringify = function defaultStringify(value) {\n return JSON.stringify(value, stringifyReplacer);\n};\nfunction stringifyReplacer(_key, value) {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce(function (copy, key) {\n copy[key] = value[key];\n return copy;\n }, {});\n }\n return value;\n}\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n var fragments;\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n }\n else if (fragments) {\n fragments.push(selection);\n }\n else {\n fragments = [selection];\n }\n }\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n if (fragments) {\n for (var _b = 0, fragments_1 = fragments; _b < fragments_1.length; _b++) {\n var selection = fragments_1[_b];\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\n//# sourceMappingURL=storeUtils.js.map","import { invariant, InvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n __DEV__ ? invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc && doc.kind === 'Document', 47);\n var operations = doc.definitions\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\".concat(definition.kind, \"\\\"\")) : new InvariantError(48);\n }\n return definition;\n });\n __DEV__ ? invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \".concat(operations.length, \" operations\")) : invariant(operations.length <= 1, 49);\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\nexport function getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && !!definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n __DEV__ ? invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.') : invariant(queryDef && queryDef.operation === 'query', 50);\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n __DEV__ ? invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc.kind === 'Document', 51);\n __DEV__ ? invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.') : invariant(doc.definitions.length <= 1, 52);\n var fragmentDef = doc.definitions[0];\n __DEV__ ? invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.') : invariant(fragmentDef.kind === 'FragmentDefinition', 53);\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw __DEV__ ? new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.') : new InvariantError(54);\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n return defaultValues;\n}\n//# sourceMappingURL=getFromAST.js.map","export var isArray = Array.isArray;\nexport function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\n//# sourceMappingURL=arrays.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit, Kind, } from 'graphql';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition, } from \"./getFromAST.js\";\nimport { isField } from \"./storeUtils.js\";\nimport { createFragmentMap, } from \"./fragments.js\";\nimport { isArray } from \"../common/arrays.js\";\nvar TYPENAME_FIELD = {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n};\nfunction isEmpty(op, fragmentMap) {\n return !op || op.selectionSet.selections.every(function (selection) { return selection.kind === Kind.FRAGMENT_SPREAD &&\n isEmpty(fragmentMap[selection.name.value], fragmentMap); });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))\n ? null\n : doc;\n}\nfunction getDirectiveMatcher(directives) {\n var nameSet = new Set();\n var tests = [];\n directives.forEach(function (directive) {\n if (directive.name) {\n nameSet.add(directive.name);\n }\n else if (directive.test) {\n tests.push(directive.test);\n }\n });\n return function (directive) { return (nameSet.has(directive.name.value) ||\n tests.some(function (test) { return test(directive); })); };\n}\nfunction makeInUseGetterFunction(defaultKey) {\n var map = new Map();\n return function inUseGetterFunction(key) {\n if (key === void 0) { key = defaultKey; }\n var inUse = map.get(key);\n if (!inUse) {\n map.set(key, inUse = {\n variables: new Set,\n fragmentSpreads: new Set,\n });\n }\n return inUse;\n };\n}\nexport function removeDirectivesFromDocument(directives, doc) {\n var getInUseByOperationName = makeInUseGetterFunction(\"\");\n var getInUseByFragmentName = makeInUseGetterFunction(\"\");\n var getInUse = function (ancestors) {\n for (var p = 0, ancestor = void 0; p < ancestors.length && (ancestor = ancestors[p]); ++p) {\n if (isArray(ancestor))\n continue;\n if (ancestor.kind === Kind.OPERATION_DEFINITION) {\n return getInUseByOperationName(ancestor.name && ancestor.name.value);\n }\n if (ancestor.kind === Kind.FRAGMENT_DEFINITION) {\n return getInUseByFragmentName(ancestor.name.value);\n }\n }\n __DEV__ && invariant.error(\"Could not find operation or fragment\");\n return null;\n };\n var operationCount = 0;\n for (var i = doc.definitions.length - 1; i >= 0; --i) {\n if (doc.definitions[i].kind === Kind.OPERATION_DEFINITION) {\n ++operationCount;\n }\n }\n var directiveMatcher = getDirectiveMatcher(directives);\n var hasRemoveDirective = directives.some(function (directive) { return directive.remove; });\n var shouldRemoveField = function (nodeDirectives) { return (hasRemoveDirective &&\n nodeDirectives &&\n nodeDirectives.some(directiveMatcher)); };\n var originalFragmentDefsByPath = new Map();\n var firstVisitMadeChanges = false;\n var fieldOrInlineFragmentVisitor = {\n enter: function (node) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n };\n var docWithoutDirectiveSubtrees = visit(doc, {\n Field: fieldOrInlineFragmentVisitor,\n InlineFragment: fieldOrInlineFragmentVisitor,\n VariableDefinition: {\n enter: function () {\n return false;\n },\n },\n Variable: {\n enter: function (node, _key, _parent, _path, ancestors) {\n var inUse = getInUse(ancestors);\n if (inUse) {\n inUse.variables.add(node.name.value);\n }\n },\n },\n FragmentSpread: {\n enter: function (node, _key, _parent, _path, ancestors) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n var inUse = getInUse(ancestors);\n if (inUse) {\n inUse.fragmentSpreads.add(node.name.value);\n }\n },\n },\n FragmentDefinition: {\n enter: function (node, _key, _parent, path) {\n originalFragmentDefsByPath.set(JSON.stringify(path), node);\n },\n leave: function (node, _key, _parent, path) {\n var originalNode = originalFragmentDefsByPath.get(JSON.stringify(path));\n if (node === originalNode) {\n return node;\n }\n if (operationCount > 0 &&\n node.selectionSet.selections.every(function (selection) { return (selection.kind === Kind.FIELD &&\n selection.name.value === '__typename'); })) {\n getInUseByFragmentName(node.name.value).removed = true;\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n Directive: {\n leave: function (node) {\n if (directiveMatcher(node)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n });\n if (!firstVisitMadeChanges) {\n return doc;\n }\n var populateTransitiveVars = function (inUse) {\n if (!inUse.transitiveVars) {\n inUse.transitiveVars = new Set(inUse.variables);\n if (!inUse.removed) {\n inUse.fragmentSpreads.forEach(function (childFragmentName) {\n populateTransitiveVars(getInUseByFragmentName(childFragmentName)).transitiveVars.forEach(function (varName) {\n inUse.transitiveVars.add(varName);\n });\n });\n }\n }\n return inUse;\n };\n var allFragmentNamesUsed = new Set();\n docWithoutDirectiveSubtrees.definitions.forEach(function (def) {\n if (def.kind === Kind.OPERATION_DEFINITION) {\n populateTransitiveVars(getInUseByOperationName(def.name && def.name.value)).fragmentSpreads.forEach(function (childFragmentName) {\n allFragmentNamesUsed.add(childFragmentName);\n });\n }\n else if (def.kind === Kind.FRAGMENT_DEFINITION &&\n operationCount === 0 &&\n !getInUseByFragmentName(def.name.value).removed) {\n allFragmentNamesUsed.add(def.name.value);\n }\n });\n allFragmentNamesUsed.forEach(function (fragmentName) {\n populateTransitiveVars(getInUseByFragmentName(fragmentName)).fragmentSpreads.forEach(function (childFragmentName) {\n allFragmentNamesUsed.add(childFragmentName);\n });\n });\n var fragmentWillBeRemoved = function (fragmentName) { return !!(!allFragmentNamesUsed.has(fragmentName) ||\n getInUseByFragmentName(fragmentName).removed); };\n var enterVisitor = {\n enter: function (node) {\n if (fragmentWillBeRemoved(node.name.value)) {\n return null;\n }\n },\n };\n return nullIfDocIsEmpty(visit(docWithoutDirectiveSubtrees, {\n FragmentSpread: enterVisitor,\n FragmentDefinition: enterVisitor,\n OperationDefinition: {\n leave: function (node) {\n if (node.variableDefinitions) {\n var usedVariableNames_1 = populateTransitiveVars(getInUseByOperationName(node.name && node.name.value)).transitiveVars;\n if (usedVariableNames_1.size < node.variableDefinitions.length) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) { return usedVariableNames_1.has(varDef.variable.name.value); }) });\n }\n }\n },\n },\n }));\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n return visit(doc, {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent &&\n parent.kind === Kind.OPERATION_DEFINITION) {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return (isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0));\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) &&\n field.directives &&\n field.directives.some(function (d) { return d.name.value === 'export'; })) {\n return;\n }\n return __assign(__assign({}, node), { selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false) });\n },\n },\n });\n}, {\n added: function (field) {\n return field === TYPENAME_FIELD;\n },\n});\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n __DEV__ && invariant.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n return (!!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return (selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value &&\n argument.value.kind === Kind.VARIABLE &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)));\n });\n };\n}\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n }) : [] });\n },\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n },\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) { return def.name === node.name.value; })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: { enter: enter },\n FragmentDefinition: { enter: enter },\n }));\n}\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { operation: 'query' });\n },\n },\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([\n {\n test: function (directive) { return directive.name.value === 'client'; },\n remove: true,\n },\n ], document);\n return modifiedDoc;\n}\n//# sourceMappingURL=transform.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var merger = new DeepMerger();\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\nvar defaultReconciler = function (target, source, property) {\n return this.merge(target[property], source[property]);\n};\nvar DeepMerger = (function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) { reconciler = defaultReconciler; }\n this.reconciler = reconciler;\n this.isObject = isNonNullObject;\n this.pastCopies = new Set();\n }\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n var context = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArray([target, source, sourceKey], context, false));\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n }\n else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n return source;\n };\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n };\n return DeepMerger;\n}());\nexport { DeepMerger };\n//# sourceMappingURL=mergeDeep.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\n\t\t\tif (typeof Symbol.for === 'function') {\n\t\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t\t// META: It's a resource locator!\n\t\t\t\tresult = Symbol.for('https://github.com/benlesh/symbol-observable');\n\t\t\t} else {\n\t\t\t\t// Symbol.for didn't exist! The best we can do at this point is a totally \n\t\t\t\t// unique symbol. Note that the string argument here is a descriptor, not\n\t\t\t\t// an identifier. This symbol is unique.\n\t\t\t\tresult = Symbol('https://github.com/benlesh/symbol-observable');\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tSymbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import { Observable, } from 'zen-observable-ts';\nimport 'symbol-observable';\nvar prototype = Observable.prototype;\nvar fakeObsSymbol = '@@observable';\nif (!prototype[fakeObsSymbol]) {\n prototype[fakeObsSymbol] = function () { return this; };\n}\nexport { Observable };\n//# sourceMappingURL=Observable.js.map","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value);\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map;\n if (seen.has(val))\n return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n case \"[object Object]\": {\n seen = seen || new Map;\n if (seen.has(val))\n return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n default:\n return val;\n }\n}\n//# sourceMappingURL=cloneDeep.js.map","import \"../globals/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nfunction deepFreeze(value) {\n var workSet = new Set([value]);\n workSet.forEach(function (obj) {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n if (isNonNullObject(obj[name]))\n workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\nfunction shallowFreeze(obj) {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n }\n catch (e) {\n if (e instanceof TypeError)\n return null;\n throw e;\n }\n }\n return obj;\n}\nexport function maybeDeepFreeze(obj) {\n if (__DEV__) {\n deepFreeze(obj);\n }\n return obj;\n}\n//# sourceMappingURL=maybeDeepFreeze.js.map","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\n//# sourceMappingURL=iteration.js.map","import { Observable } from \"./Observable.js\";\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var next = observer.next, error = observer.error, complete = observer.complete;\n var activeCallbackCount = 0;\n var completed = false;\n var promiseQueue = {\n then: function (callback) {\n return new Promise(function (resolve) { return resolve(callback()); });\n },\n };\n function makeCallback(examiner, delegate) {\n if (examiner) {\n return function (arg) {\n ++activeCallbackCount;\n var both = function () { return examiner(arg); };\n promiseQueue = promiseQueue.then(both, both).then(function (result) {\n --activeCallbackCount;\n next && next.call(observer, result);\n if (completed) {\n handler.complete();\n }\n }, function (error) {\n --activeCallbackCount;\n throw error;\n }).catch(function (caught) {\n error && error.call(observer, caught);\n });\n };\n }\n else {\n return function (arg) { return delegate && delegate.call(observer, arg); };\n }\n }\n var handler = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete: function () {\n completed = true;\n if (!activeCallbackCount) {\n complete && complete.call(observer);\n }\n },\n };\n var sub = observable.subscribe(handler);\n return function () { return sub.unsubscribe(); };\n });\n}\n//# sourceMappingURL=asyncMap.js.map","import { maybe } from \"../globals/index.js\";\nexport var canUseWeakMap = typeof WeakMap === 'function' &&\n maybe(function () { return navigator.product; }) !== 'ReactNative';\nexport var canUseWeakSet = typeof WeakSet === 'function';\nexport var canUseSymbol = typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\nexport var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\nexport var canUseDOM = typeof maybe(function () { return window.document.createElement; }) === \"function\";\nvar usingJSDOM = maybe(function () { return navigator.userAgent.indexOf(\"jsdom\") >= 0; }) || false;\nexport var canUseLayoutEffect = canUseDOM && !usingJSDOM;\n//# sourceMappingURL=canUse.js.map","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n set(\"@@species\");\n return subclass;\n}\n//# sourceMappingURL=subclassing.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\nvar Concast = (function (_super) {\n __extends(Concast, _super);\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n return function () { return _this.removeObserver(observer); };\n }) || this;\n _this.observers = new Set();\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n _this.handlers = {\n next: function (result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n _this.notify(\"next\", result);\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function (error) {\n var sub = _this.sub;\n if (sub !== null) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n _this.latest = [\"error\", error];\n _this.reject(error);\n _this.notify(\"error\", error);\n iterateObserversSafely(_this.observers, \"error\", error);\n }\n },\n complete: function () {\n var _a = _this, sub = _a.sub, _b = _a.sources, sources = _b === void 0 ? [] : _b;\n if (sub !== null) {\n var value = sources.shift();\n if (!value) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n if (_this.latest &&\n _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n }\n else {\n _this.resolve();\n }\n _this.notify(\"complete\");\n iterateObserversSafely(_this.observers, \"complete\");\n }\n else if (isPromiseLike(value)) {\n value.then(function (obs) { return _this.sub = obs.subscribe(_this.handlers); });\n }\n else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n },\n };\n _this.nextResultListeners = new Set();\n _this.cancel = function (reason) {\n _this.reject(reason);\n _this.sources = [];\n _this.handlers.complete();\n };\n _this.promise.catch(function (_) { });\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) { return _this.start(iterable); }, _this.handlers.error);\n }\n else {\n _this.start(sources);\n }\n return _this;\n }\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0)\n return;\n this.sources = Array.from(sources);\n this.handlers.complete();\n };\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n if (this.sub === null &&\n nextOrError === \"next\" &&\n observer.complete) {\n observer.complete();\n }\n }\n };\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n };\n Concast.prototype.removeObserver = function (observer) {\n if (this.observers.delete(observer) &&\n this.observers.size < 1) {\n this.handlers.complete();\n }\n };\n Concast.prototype.notify = function (method, arg) {\n var nextResultListeners = this.nextResultListeners;\n if (nextResultListeners.size) {\n this.nextResultListeners = new Set;\n nextResultListeners.forEach(function (listener) { return listener(method, arg); });\n }\n };\n Concast.prototype.beforeNext = function (callback) {\n var called = false;\n this.nextResultListeners.add(function (method, arg) {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n };\n return Concast;\n}(Observable));\nexport { Concast };\nfixObservableSubclass(Concast);\n//# sourceMappingURL=Concast.js.map","import { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\nexport function isExecutionPatchIncrementalResult(value) {\n return \"incremental\" in value;\n}\nexport function isExecutionPatchInitialResult(value) {\n return \"hasNext\" in value && \"data\" in value;\n}\nexport function isExecutionPatchResult(value) {\n return (isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value));\n}\nexport function isApolloPayloadResult(value) {\n return isNonNullObject(value) && \"payload\" in value;\n}\nexport function mergeIncrementalData(prevResult, result) {\n var mergedData = prevResult;\n var merger = new DeepMerger();\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (_a) {\n var data = _a.data, path = _a.path;\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData;\n}\n//# sourceMappingURL=incrementalResult.js.map","import { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\nexport function graphQLResultHasError(result) {\n var errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\nexport function getGraphQLErrorsFromResult(result) {\n var graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (incrementalResult) {\n if (incrementalResult.errors) {\n graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n//# sourceMappingURL=errorHandling.js.map","export function compact() {\n var objects = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj)\n return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}\n//# sourceMappingURL=compact.js.map","var prefixCounts = new Map();\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}\n//# sourceMappingURL=makeUniqueId.js.map","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value) {\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }).split(JSON.stringify(undefId)).join(\"\");\n}\n//# sourceMappingURL=stringifyForDisplay.js.map","import { __assign } from \"tslib\";\nimport { compact } from \"./compact.js\";\nexport function mergeOptions(defaults, options) {\n return compact(defaults, options, options.variables && {\n variables: __assign(__assign({}, (defaults && defaults.variables)), options.variables),\n });\n}\n//# sourceMappingURL=mergeOptions.js.map","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\n//# sourceMappingURL=fromError.js.map","export var throwServerError = function (response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n//# sourceMappingURL=throwServerError.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw __DEV__ ? new InvariantError(\"illegal argument: \".concat(key)) : new InvariantError(27);\n }\n }\n return operation;\n}\n//# sourceMappingURL=validateOperation.js.map","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n }\n else {\n context = __assign(__assign({}, context), next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query) || undefined\n : '';\n }\n return transformedOperation;\n}\n//# sourceMappingURL=transformOperation.js.map","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation, } from \"../utils/index.js\";\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(22);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var from = ApolloLink.from;\n//# sourceMappingURL=from.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var split = ApolloLink.split;\n//# sourceMappingURL=split.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map","export var version = '3.7.15';\n//# sourceMappingURL=version.js.map","import { canUseAsyncIteratorSymbol } from \"./canUse.js\";\nexport function isNodeResponse(value) {\n return !!value.body;\n}\nexport function isReadableStream(value) {\n return !!value.getReader;\n}\nexport function isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol &&\n value[Symbol.asyncIterator]);\n}\nexport function isStreamableBlob(value) {\n return !!value.stream;\n}\nexport function isBlob(value) {\n return !!value.arrayBuffer;\n}\nexport function isNodeReadableStream(value) {\n return !!value.pipe;\n}\n//# sourceMappingURL=responseIterator.js.map","export default function asyncIterator(source) {\n var _a;\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function () {\n return iterator.next();\n }\n },\n _a[Symbol.asyncIterator] = function () {\n return this;\n },\n _a;\n}\n//# sourceMappingURL=async.js.map","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n function onData(chunk) {\n if (error)\n return;\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error)\n return reject(error);\n if (data.length)\n return resolve({ value: data.shift(), done: false });\n if (done)\n return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n var iterator = {\n next: function () {\n return getNext();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=nodeStream.js.map","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function () {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value, done: false });\n })\n .catch(reject);\n });\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=promise.js.map","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function () {\n return reader.read();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=reader.js.map","import { isAsyncIterableIterator, isBlob, isNodeResponse, isNodeReadableStream, isReadableStream, isStreamableBlob, } from \"../../utilities/common/responseIterator.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response))\n body = response.body;\n if (isAsyncIterableIterator(body))\n return asyncIterator(body);\n if (isReadableStream(body))\n return readerIterator(body.getReader());\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n if (isBlob(body))\n return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body))\n return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}\n//# sourceMappingURL=responseIterator.js.map","import { __extends, __spreadArray } from \"tslib\";\nimport \"../utilities/globals/index.js\";\nimport { isNonNullObject } from \"../utilities/index.js\";\nexport var PROTOCOL_ERRORS_SYMBOL = Symbol();\nexport function graphQLResultHasProtocolErrors(result) {\n if (result.extensions) {\n return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);\n }\n return false;\n}\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var errors = __spreadArray(__spreadArray(__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);\n if (err.networkError)\n errors.push(err.networkError);\n return errors\n .map(function (err) { return isNonNullObject(err) && err.message || 'Error message not found.'; })\n .join('\\n');\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.name = 'ApolloError';\n _this.graphQLErrors = graphQLErrors || [];\n _this.protocolErrors = protocolErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, observer) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _f, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;\n var _g, _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter))\n ? contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim()\n : \"-\";\n boundary = \"\\r\\n--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _j.label = 1;\n case 1:\n if (!running) return [3, 3];\n return [4, iterator.next()];\n case 2:\n _f = _j.sent(), value = _f.value, done = _f.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary, searchFrom);\n while (bi > -1) {\n message = void 0;\n _g = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ], message = _g[0], buffer = _g[1];\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n if (contentType_1 &&\n contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n body = message.slice(i);\n if (body) {\n try {\n result = parseJsonBody(response, body);\n if (Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result) {\n if (isApolloPayloadResult(result)) {\n next = {};\n if (\"payload\" in result) {\n next = __assign({}, result.payload);\n }\n if (\"errors\" in result) {\n next = __assign(__assign({}, next), { extensions: __assign(__assign({}, (\"extensions\" in next ? next.extensions : null)), (_h = {}, _h[PROTOCOL_ERRORS_SYMBOL] = result.errors, _h)) });\n }\n (_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, next);\n }\n else {\n (_c = observer.next) === null || _c === void 0 ? void 0 : _c.call(observer, result);\n }\n }\n else if (Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext) {\n (_d = observer.complete) === null || _d === void 0 ? void 0 : _d.call(observer);\n }\n }\n catch (err) {\n handleError(err, observer);\n }\n }\n bi = buffer.indexOf(boundary);\n }\n return [3, 1];\n case 3:\n (_e = observer.complete) === null || _e === void 0 ? void 0 : _e.call(observer);\n return [2];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n if (i > -1) {\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n var getResult = function () {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n return bodyText;\n }\n };\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n var _a, _b;\n if (err.name === \"AbortError\")\n return;\n if (err.result && err.result.errors && err.result.data) {\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, err.result);\n }\n (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, err);\n}\nexport function readJsonBody(response, operation, observer) {\n parseAndCheckHttpResponse(operation)(response)\n .then(function (result) {\n var _a, _b;\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, result);\n (_b = observer.complete) === null || _b === void 0 ? void 0 : _b.call(observer);\n })\n .catch(function (err) { return handleError(err, observer); });\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response\n .text()\n .then(function (bodyText) { return parseJsonBody(response, bodyText); })\n .then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \".concat(response.status));\n }\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")) {\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations)\n ? operations.map(function (op) { return op.operationName; })\n : operations.operationName, \"'.\"));\n }\n return result;\n });\n };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\n catch (e) {\n var parseError = __DEV__ ? new InvariantError(\"Network request failed. \".concat(label, \" is not serializable: \").concat(e.message)) : new InvariantError(24);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n//# sourceMappingURL=serializeFetchParameter.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from 'graphql';\n;\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json',\n};\nvar defaultOptions = {\n method: 'POST',\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n http = __assign(__assign({}, http), config.http);\n });\n if (options.headers) {\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n }\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options: options,\n body: body,\n };\n}\n;\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n var headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = { originalName: name, value: headers[name] };\n });\n var normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var checkFetcher = function (fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n throw __DEV__ ? new InvariantError(\"\\n\\\"fetch\\\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\\n\\nimport fetch from 'cross-fetch';\\nimport { ApolloClient, HttpLink } from '@apollo/client';\\nconst client = new ApolloClient({\\n link: new HttpLink({ uri: '/graphql', fetch })\\n});\\n \") : new InvariantError(23);\n }\n};\n//# sourceMappingURL=checkFetcher.js.map","export var createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n var controller = new AbortController();\n var signal = controller.signal;\n return { controller: controller, signal: signal };\n};\n//# sourceMappingURL=createSignalIfSupported.js.map","export var selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || '/graphql';\n }\n};\n//# sourceMappingURL=selectURI.js.map","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n };\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n var fragment = '', preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI: newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import { __assign, __rest } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { handleError, readMultipartBody, readJsonBody } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { maybe, getMainDefinition } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport var createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n if (__DEV__) {\n checkFetcher(preferredFetch || backupFetch);\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions, preserveHeaderCase: preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function (node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n },\n });\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n var controller;\n if (!options.signal) {\n var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;\n controller = _controller;\n if (controller)\n options.signal = signal;\n }\n var definitionIsMutation = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n var definitionIsSubscription = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'subscription';\n };\n var isSubscription = definitionIsSubscription(getMainDefinition(operation.query));\n var hasDefer = hasDirectives(['defer'], operation.query);\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n if (hasDefer || isSubscription) {\n options.headers = options.headers || {};\n var acceptHeader = \"multipart/mixed;\";\n if (isSubscription && hasDefer) {\n __DEV__ && invariant.warn(\"Multipart-subscriptions do not support @defer\");\n }\n if (isSubscription) {\n acceptHeader += 'boundary=graphql;subscriptionSpec=1.0,application/json';\n }\n else if (hasDefer) {\n acceptHeader += 'deferSpec=20220824,application/json';\n }\n options.headers.accept = acceptHeader;\n }\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n currentFetch(chosenURI, options)\n .then(function (response) {\n var _a;\n operation.setContext({ response: response });\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observer);\n }\n else {\n return readJsonBody(response, operation, observer);\n }\n })\n .catch(function (err) { return handleError(err, observer); });\n return function () {\n if (controller)\n controller.abort();\n };\n });\n });\n};\n//# sourceMappingURL=createHttpLink.js.map","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\nvar HttpLink = (function (_super) {\n __extends(HttpLink, _super);\n function HttpLink(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, createHttpLink(options).request) || this;\n _this.options = options;\n return _this;\n }\n return HttpLink;\n}(ApolloLink));\nexport { HttpLink };\n//# sourceMappingURL=HttpLink.js.map","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map();\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a, b) {\n try {\n return check(a, b);\n }\n finally {\n previousComparisons.clear();\n }\n}\n// Allow default imports as well.\nexport default equal;\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length)\n return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b))\n return true;\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length)\n return false;\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a)\n return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size)\n return false;\n if (previouslyCompared(a, b))\n return true;\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n while (true) {\n const info = aIterator.next();\n if (info.done)\n break;\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n return true;\n }\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\n }\n }\n return len === -1;\n }\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]': {\n const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n // Otherwise the values are not equal.\n return false;\n}\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\nconst nativeCodeSuffix = \"{ [native code] }\";\nfunction endsWith(full, suffix) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b))\n return true;\n }\n else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n//# sourceMappingURL=index.js.map","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\r\n// object keys weakly, yet can also hold non-object keys, unlike the\r\n// native `WeakMap`.\r\n// If no makeData function is supplied, the looked-up data will be an empty,\r\n// null-prototype Object.\r\nvar defaultMakeData = function () { return Object.create(null); };\r\n// Useful for processing arguments objects as well as arrays.\r\nvar _a = Array.prototype, forEach = _a.forEach, slice = _a.slice;\r\nvar Trie = /** @class */ (function () {\r\n function Trie(weakness, makeData) {\r\n if (weakness === void 0) { weakness = true; }\r\n if (makeData === void 0) { makeData = defaultMakeData; }\r\n this.weakness = weakness;\r\n this.makeData = makeData;\r\n }\r\n Trie.prototype.lookup = function () {\r\n var array = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n array[_i] = arguments[_i];\r\n }\r\n return this.lookupArray(array);\r\n };\r\n Trie.prototype.lookupArray = function (array) {\r\n var node = this;\r\n forEach.call(array, function (key) { return node = node.getChildTrie(key); });\r\n return node.data || (node.data = this.makeData(slice.call(array)));\r\n };\r\n Trie.prototype.getChildTrie = function (key) {\r\n var map = this.weakness && isObjRef(key)\r\n ? this.weak || (this.weak = new WeakMap())\r\n : this.strong || (this.strong = new Map());\r\n var child = map.get(key);\r\n if (!child)\r\n map.set(key, child = new Trie(this.weakness, this.makeData));\r\n return child;\r\n };\r\n return Trie;\r\n}());\r\nfunction isObjRef(value) {\r\n switch (typeof value) {\r\n case \"object\":\r\n if (value === null)\r\n break;\r\n // Fall through to return true...\r\n case \"function\":\r\n return true;\r\n }\r\n return false;\r\n}\n\nexport { Trie };\n//# sourceMappingURL=trie.esm.js.map\n","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext = null;\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE = {};\nlet idCounter = 1;\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n constructor() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n }\n hasValue() {\n for (let context = currentContext; context; context = context.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE)\n break;\n if (context !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n }\n getValue() {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n }\n withValue(value, callback, \n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n }\n finally {\n currentContext = parent;\n }\n }\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(callback) {\n const context = currentContext;\n return function () {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n }\n finally {\n currentContext = saved;\n }\n };\n }\n // Immediately run a callback function without any captured context.\n static noContext(callback, \n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n }\n finally {\n currentContext = saved;\n }\n }\n else {\n return callback.apply(thisArg, args);\n }\n }\n};\nfunction maybe(fn) {\n try {\n return fn();\n }\n catch (ignored) { }\n}\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\nconst host = \n// Prefer globalThis when available.\n// https://github.com/benjamn/wryware/issues/347\nmaybe(() => globalThis) ||\n // Fall back to global, which works in Node.js and may be converted by some\n // bundlers to the appropriate identifier (window, self, ...) depending on the\n // bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\n maybe(() => global) ||\n // Otherwise, use a dummy host that's local to this module. We used to fall\n // back to using the Array constructor as a namespace, but that was flagged in\n // https://github.com/benjamn/wryware/issues/347, and can be avoided.\n Object.create(null);\n// Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\nconst globalHost = host;\nexport const Slot = globalHost[globalKey] ||\n // Earlier versions of this package stored the globalKey property on the Array\n // constructor, so we check there as well, to prevent Slot class duplication.\n Array[globalKey] ||\n (function (Slot) {\n try {\n Object.defineProperty(globalHost, globalKey, {\n value: Slot,\n enumerable: false,\n writable: false,\n // When it was possible for globalHost to be the Array constructor (a\n // legacy Slot dedup strategy), it was important for the property to be\n // configurable:true so it could be deleted. That does not seem to be as\n // important when globalHost is the global object, but I don't want to\n // cause similar problems again, and configurable:true seems safest.\n // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n configurable: true\n });\n }\n finally {\n return Slot;\n }\n })(makeSlotClass());\n//# sourceMappingURL=slot.js.map","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() { }\r\nvar Cache = /** @class */ (function () {\r\n function Cache(max, dispose) {\r\n if (max === void 0) { max = Infinity; }\r\n if (dispose === void 0) { dispose = defaultDispose; }\r\n this.max = max;\r\n this.dispose = dispose;\r\n this.map = new Map();\r\n this.newest = null;\r\n this.oldest = null;\r\n }\r\n Cache.prototype.has = function (key) {\r\n return this.map.has(key);\r\n };\r\n Cache.prototype.get = function (key) {\r\n var node = this.getNode(key);\r\n return node && node.value;\r\n };\r\n Cache.prototype.getNode = function (key) {\r\n var node = this.map.get(key);\r\n if (node && node !== this.newest) {\r\n var older = node.older, newer = node.newer;\r\n if (newer) {\r\n newer.older = older;\r\n }\r\n if (older) {\r\n older.newer = newer;\r\n }\r\n node.older = this.newest;\r\n node.older.newer = node;\r\n node.newer = null;\r\n this.newest = node;\r\n if (node === this.oldest) {\r\n this.oldest = newer;\r\n }\r\n }\r\n return node;\r\n };\r\n Cache.prototype.set = function (key, value) {\r\n var node = this.getNode(key);\r\n if (node) {\r\n return node.value = value;\r\n }\r\n node = {\r\n key: key,\r\n value: value,\r\n newer: null,\r\n older: this.newest\r\n };\r\n if (this.newest) {\r\n this.newest.newer = node;\r\n }\r\n this.newest = node;\r\n this.oldest = this.oldest || node;\r\n this.map.set(key, node);\r\n return node.value;\r\n };\r\n Cache.prototype.clean = function () {\r\n while (this.oldest && this.map.size > this.max) {\r\n this.delete(this.oldest.key);\r\n }\r\n };\r\n Cache.prototype.delete = function (key) {\r\n var node = this.map.get(key);\r\n if (node) {\r\n if (node === this.newest) {\r\n this.newest = node.older;\r\n }\r\n if (node === this.oldest) {\r\n this.oldest = node.newer;\r\n }\r\n if (node.newer) {\r\n node.newer.older = node.older;\r\n }\r\n if (node.older) {\r\n node.older.newer = node.newer;\r\n }\r\n this.map.delete(key);\r\n this.dispose(node.value, key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nvar \r\n// This Array.from polyfill is restricted to working with Set for now,\r\n// but we can improve the polyfill and add other input types, as needed. Note\r\n// that this fallback implementation will only be used if the host environment\r\n// does not support a native Array.from function. In most modern JS runtimes,\r\n// the toArray function exported here will be === Array.from.\r\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\r\n var array = [];\r\n collection.forEach(function (item) { return array.push(item); });\r\n return array;\r\n} : _a);\r\nfunction maybeUnsubscribe(entryOrDep) {\r\n var unsubscribe = entryOrDep.unsubscribe;\r\n if (typeof unsubscribe === \"function\") {\r\n entryOrDep.unsubscribe = void 0;\r\n unsubscribe();\r\n }\r\n}\n\nvar emptySetPool = [];\r\nvar POOL_TARGET_SIZE = 100;\r\n// Since this package might be used browsers, we should avoid using the\r\n// Node built-in assert module.\r\nfunction assert(condition, optionalMessage) {\r\n if (!condition) {\r\n throw new Error(optionalMessage || \"assertion failure\");\r\n }\r\n}\r\nfunction valueIs(a, b) {\r\n var len = a.length;\r\n return (\r\n // Unknown values are not equal to each other.\r\n len > 0 &&\r\n // Both values must be ordinary (or both exceptional) to be equal.\r\n len === b.length &&\r\n // The underlying value or exception must be the same.\r\n a[len - 1] === b[len - 1]);\r\n}\r\nfunction valueGet(value) {\r\n switch (value.length) {\r\n case 0: throw new Error(\"unknown value\");\r\n case 1: return value[0];\r\n case 2: throw value[1];\r\n }\r\n}\r\nfunction valueCopy(value) {\r\n return value.slice(0);\r\n}\r\nvar Entry = /** @class */ (function () {\r\n function Entry(fn) {\r\n this.fn = fn;\r\n this.parents = new Set();\r\n this.childValues = new Map();\r\n // When this Entry has children that are dirty, this property becomes\r\n // a Set containing other Entry objects, borrowed from emptySetPool.\r\n // When the set becomes empty, it gets recycled back to emptySetPool.\r\n this.dirtyChildren = null;\r\n this.dirty = true;\r\n this.recomputing = false;\r\n this.value = [];\r\n this.deps = null;\r\n ++Entry.count;\r\n }\r\n Entry.prototype.peek = function () {\r\n if (this.value.length === 1 && !mightBeDirty(this)) {\r\n rememberParent(this);\r\n return this.value[0];\r\n }\r\n };\r\n // This is the most important method of the Entry API, because it\r\n // determines whether the cached this.value can be returned immediately,\r\n // or must be recomputed. The overall performance of the caching system\r\n // depends on the truth of the following observations: (1) this.dirty is\r\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\r\n // (3) valueGet(this.value) is usually returned without recomputation.\r\n Entry.prototype.recompute = function (args) {\r\n assert(!this.recomputing, \"already recomputing\");\r\n rememberParent(this);\r\n return mightBeDirty(this)\r\n ? reallyRecompute(this, args)\r\n : valueGet(this.value);\r\n };\r\n Entry.prototype.setDirty = function () {\r\n if (this.dirty)\r\n return;\r\n this.dirty = true;\r\n this.value.length = 0;\r\n reportDirty(this);\r\n // We can go ahead and unsubscribe here, since any further dirty\r\n // notifications we receive will be redundant, and unsubscribing may\r\n // free up some resources, e.g. file watchers.\r\n maybeUnsubscribe(this);\r\n };\r\n Entry.prototype.dispose = function () {\r\n var _this = this;\r\n this.setDirty();\r\n // Sever any dependency relationships with our own children, so those\r\n // children don't retain this parent Entry in their child.parents sets,\r\n // thereby preventing it from being fully garbage collected.\r\n forgetChildren(this);\r\n // Because this entry has been kicked out of the cache (in index.js),\r\n // we've lost the ability to find out if/when this entry becomes dirty,\r\n // whether that happens through a subscription, because of a direct call\r\n // to entry.setDirty(), or because one of its children becomes dirty.\r\n // Because of this loss of future information, we have to assume the\r\n // worst (that this entry might have become dirty very soon), so we must\r\n // immediately mark this entry's parents as dirty. Normally we could\r\n // just call entry.setDirty() rather than calling parent.setDirty() for\r\n // each parent, but that would leave this entry in parent.childValues\r\n // and parent.dirtyChildren, which would prevent the child from being\r\n // truly forgotten.\r\n eachParent(this, function (parent, child) {\r\n parent.setDirty();\r\n forgetChild(parent, _this);\r\n });\r\n };\r\n Entry.prototype.forget = function () {\r\n // The code that creates Entry objects in index.ts will replace this method\r\n // with one that actually removes the Entry from the cache, which will also\r\n // trigger the entry.dispose method.\r\n this.dispose();\r\n };\r\n Entry.prototype.dependOn = function (dep) {\r\n dep.add(this);\r\n if (!this.deps) {\r\n this.deps = emptySetPool.pop() || new Set();\r\n }\r\n this.deps.add(dep);\r\n };\r\n Entry.prototype.forgetDeps = function () {\r\n var _this = this;\r\n if (this.deps) {\r\n toArray(this.deps).forEach(function (dep) { return dep.delete(_this); });\r\n this.deps.clear();\r\n emptySetPool.push(this.deps);\r\n this.deps = null;\r\n }\r\n };\r\n Entry.count = 0;\r\n return Entry;\r\n}());\r\nfunction rememberParent(child) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n child.parents.add(parent);\r\n if (!parent.childValues.has(child)) {\r\n parent.childValues.set(child, []);\r\n }\r\n if (mightBeDirty(child)) {\r\n reportDirtyChild(parent, child);\r\n }\r\n else {\r\n reportCleanChild(parent, child);\r\n }\r\n return parent;\r\n }\r\n}\r\nfunction reallyRecompute(entry, args) {\r\n forgetChildren(entry);\r\n // Set entry as the parent entry while calling recomputeNewValue(entry).\r\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\r\n if (maybeSubscribe(entry, args)) {\r\n // If we successfully recomputed entry.value and did not fail to\r\n // (re)subscribe, then this Entry is no longer explicitly dirty.\r\n setClean(entry);\r\n }\r\n return valueGet(entry.value);\r\n}\r\nfunction recomputeNewValue(entry, args) {\r\n entry.recomputing = true;\r\n // Set entry.value as unknown.\r\n entry.value.length = 0;\r\n try {\r\n // If entry.fn succeeds, entry.value will become a normal Value.\r\n entry.value[0] = entry.fn.apply(null, args);\r\n }\r\n catch (e) {\r\n // If entry.fn throws, entry.value will become exceptional.\r\n entry.value[1] = e;\r\n }\r\n // Either way, this line is always reached.\r\n entry.recomputing = false;\r\n}\r\nfunction mightBeDirty(entry) {\r\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\r\n}\r\nfunction setClean(entry) {\r\n entry.dirty = false;\r\n if (mightBeDirty(entry)) {\r\n // This Entry may still have dirty children, in which case we can't\r\n // let our parents know we're clean just yet.\r\n return;\r\n }\r\n reportClean(entry);\r\n}\r\nfunction reportDirty(child) {\r\n eachParent(child, reportDirtyChild);\r\n}\r\nfunction reportClean(child) {\r\n eachParent(child, reportCleanChild);\r\n}\r\nfunction eachParent(child, callback) {\r\n var parentCount = child.parents.size;\r\n if (parentCount) {\r\n var parents = toArray(child.parents);\r\n for (var i = 0; i < parentCount; ++i) {\r\n callback(parents[i], child);\r\n }\r\n }\r\n}\r\n// Let a parent Entry know that one of its children may be dirty.\r\nfunction reportDirtyChild(parent, child) {\r\n // Must have called rememberParent(child) before calling\r\n // reportDirtyChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(mightBeDirty(child));\r\n var parentWasClean = !mightBeDirty(parent);\r\n if (!parent.dirtyChildren) {\r\n parent.dirtyChildren = emptySetPool.pop() || new Set;\r\n }\r\n else if (parent.dirtyChildren.has(child)) {\r\n // If we already know this child is dirty, then we must have already\r\n // informed our own parents that we are dirty, so we can terminate\r\n // the recursion early.\r\n return;\r\n }\r\n parent.dirtyChildren.add(child);\r\n // If parent was clean before, it just became (possibly) dirty (according to\r\n // mightBeDirty), since we just added child to parent.dirtyChildren.\r\n if (parentWasClean) {\r\n reportDirty(parent);\r\n }\r\n}\r\n// Let a parent Entry know that one of its children is no longer dirty.\r\nfunction reportCleanChild(parent, child) {\r\n // Must have called rememberChild(child) before calling\r\n // reportCleanChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(!mightBeDirty(child));\r\n var childValue = parent.childValues.get(child);\r\n if (childValue.length === 0) {\r\n parent.childValues.set(child, valueCopy(child.value));\r\n }\r\n else if (!valueIs(childValue, child.value)) {\r\n parent.setDirty();\r\n }\r\n removeDirtyChild(parent, child);\r\n if (mightBeDirty(parent)) {\r\n return;\r\n }\r\n reportClean(parent);\r\n}\r\nfunction removeDirtyChild(parent, child) {\r\n var dc = parent.dirtyChildren;\r\n if (dc) {\r\n dc.delete(child);\r\n if (dc.size === 0) {\r\n if (emptySetPool.length < POOL_TARGET_SIZE) {\r\n emptySetPool.push(dc);\r\n }\r\n parent.dirtyChildren = null;\r\n }\r\n }\r\n}\r\n// Removes all children from this entry and returns an array of the\r\n// removed children.\r\nfunction forgetChildren(parent) {\r\n if (parent.childValues.size > 0) {\r\n parent.childValues.forEach(function (_value, child) {\r\n forgetChild(parent, child);\r\n });\r\n }\r\n // Remove this parent Entry from any sets to which it was added by the\r\n // addToSet method.\r\n parent.forgetDeps();\r\n // After we forget all our children, this.dirtyChildren must be empty\r\n // and therefore must have been reset to null.\r\n assert(parent.dirtyChildren === null);\r\n}\r\nfunction forgetChild(parent, child) {\r\n child.parents.delete(parent);\r\n parent.childValues.delete(child);\r\n removeDirtyChild(parent, child);\r\n}\r\nfunction maybeSubscribe(entry, args) {\r\n if (typeof entry.subscribe === \"function\") {\r\n try {\r\n maybeUnsubscribe(entry); // Prevent double subscriptions.\r\n entry.unsubscribe = entry.subscribe.apply(null, args);\r\n }\r\n catch (e) {\r\n // If this Entry has a subscribe function and it threw an exception\r\n // (or an unsubscribe function it previously returned now throws),\r\n // return false to indicate that we were not able to subscribe (or\r\n // unsubscribe), and this Entry should remain dirty.\r\n entry.setDirty();\r\n return false;\r\n }\r\n }\r\n // Returning true indicates either that there was no entry.subscribe\r\n // function or that it succeeded.\r\n return true;\r\n}\n\nvar EntryMethods = {\r\n setDirty: true,\r\n dispose: true,\r\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\r\n};\r\nfunction dep(options) {\r\n var depsByKey = new Map();\r\n var subscribe = options && options.subscribe;\r\n function depend(key) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n var dep_1 = depsByKey.get(key);\r\n if (!dep_1) {\r\n depsByKey.set(key, dep_1 = new Set);\r\n }\r\n parent.dependOn(dep_1);\r\n if (typeof subscribe === \"function\") {\r\n maybeUnsubscribe(dep_1);\r\n dep_1.unsubscribe = subscribe(key);\r\n }\r\n }\r\n }\r\n depend.dirty = function dirty(key, entryMethodName) {\r\n var dep = depsByKey.get(key);\r\n if (dep) {\r\n var m_1 = (entryMethodName &&\r\n hasOwnProperty.call(EntryMethods, entryMethodName)) ? entryMethodName : \"setDirty\";\r\n // We have to use toArray(dep).forEach instead of dep.forEach, because\r\n // modifying a Set while iterating over it can cause elements in the Set\r\n // to be removed from the Set before they've been iterated over.\r\n toArray(dep).forEach(function (entry) { return entry[m_1](); });\r\n depsByKey.delete(key);\r\n maybeUnsubscribe(dep);\r\n }\r\n };\r\n return depend;\r\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\r\n var keyTrie = new Trie(typeof WeakMap === \"function\");\r\n return function () {\r\n return keyTrie.lookupArray(arguments);\r\n };\r\n}\r\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\r\n// a unique object for any shallow-identical list of arguments. If you need\r\n// to implement a custom makeCacheKey function, you may find it helpful to\r\n// delegate the final work to defaultMakeCacheKey, which is why we export it\r\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\r\n// does not support WeakMap, or you have the ability to return a string key.\r\n// In those cases, just write your own custom makeCacheKey functions.\r\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\r\nvar caches = new Set();\r\nfunction wrap(originalFunction, options) {\r\n if (options === void 0) { options = Object.create(null); }\r\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) { return entry.dispose(); });\r\n var keyArgs = options.keyArgs;\r\n var makeCacheKey = options.makeCacheKey ||\r\n makeDefaultMakeCacheKeyFunction();\r\n var optimistic = function () {\r\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\r\n if (key === void 0) {\r\n return originalFunction.apply(null, arguments);\r\n }\r\n var entry = cache.get(key);\r\n if (!entry) {\r\n cache.set(key, entry = new Entry(originalFunction));\r\n entry.subscribe = options.subscribe;\r\n // Give the Entry the ability to trigger cache.delete(key), even though\r\n // the Entry itself does not know about key or cache.\r\n entry.forget = function () { return cache.delete(key); };\r\n }\r\n var value = entry.recompute(Array.prototype.slice.call(arguments));\r\n // Move this entry to the front of the least-recently used queue,\r\n // since we just finished computing its value.\r\n cache.set(key, entry);\r\n caches.add(cache);\r\n // Clean up any excess entries in the cache, but only if there is no\r\n // active parent entry, meaning we're not in the middle of a larger\r\n // computation that might be flummoxed by the cleaning.\r\n if (!parentEntrySlot.hasValue()) {\r\n caches.forEach(function (cache) { return cache.clean(); });\r\n caches.clear();\r\n }\r\n return value;\r\n };\r\n Object.defineProperty(optimistic, \"size\", {\r\n get: function () {\r\n return cache[\"map\"].size;\r\n },\r\n configurable: false,\r\n enumerable: false,\r\n });\r\n function dirtyKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n entry.setDirty();\r\n }\r\n }\r\n optimistic.dirtyKey = dirtyKey;\r\n optimistic.dirty = function dirty() {\r\n dirtyKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function peekKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n return entry.peek();\r\n }\r\n }\r\n optimistic.peekKey = peekKey;\r\n optimistic.peek = function peek() {\r\n return peekKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function forgetKey(key) {\r\n return cache.delete(key);\r\n }\r\n optimistic.forgetKey = forgetKey;\r\n optimistic.forget = function forget() {\r\n return forgetKey(makeCacheKey.apply(null, arguments));\r\n };\r\n optimistic.makeCacheKey = makeCacheKey;\r\n optimistic.getKey = keyArgs ? function getKey() {\r\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\r\n } : makeCacheKey;\r\n return Object.freeze(optimistic);\r\n}\n\nexport { defaultMakeCacheKey, dep, wrap };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __assign, __rest } from \"tslib\";\nimport { wrap } from 'optimism';\nimport { getFragmentQueryDocument, } from \"../../utilities/index.js\";\nvar ApolloCache = (function () {\n function ApolloCache() {\n this.getFragmentDoc = wrap(getFragmentQueryDocument);\n }\n ApolloCache.prototype.batch = function (options) {\n var _this = this;\n var optimisticId = typeof options.optimistic === \"string\" ? options.optimistic :\n options.optimistic === false ? null : void 0;\n var updateResult;\n this.performTransaction(function () { return updateResult = options.update(_this); }, optimisticId);\n return updateResult;\n };\n ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n this.performTransaction(transaction, optimisticId);\n };\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n ApolloCache.prototype.identify = function (object) {\n return;\n };\n ApolloCache.prototype.gc = function () {\n return [];\n };\n ApolloCache.prototype.modify = function (options) {\n return false;\n };\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = !!options.optimistic; }\n return this.read(__assign(__assign({}, options), { rootId: options.id || 'ROOT_QUERY', optimistic: optimistic }));\n };\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = !!options.optimistic; }\n return this.read(__assign(__assign({}, options), { query: this.getFragmentDoc(options.fragment, options.fragmentName), rootId: options.id, optimistic: optimistic }));\n };\n ApolloCache.prototype.writeQuery = function (_a) {\n var id = _a.id, data = _a.data, options = __rest(_a, [\"id\", \"data\"]);\n return this.write(Object.assign(options, {\n dataId: id || 'ROOT_QUERY',\n result: data,\n }));\n };\n ApolloCache.prototype.writeFragment = function (_a) {\n var id = _a.id, data = _a.data, fragment = _a.fragment, fragmentName = _a.fragmentName, options = __rest(_a, [\"id\", \"data\", \"fragment\", \"fragmentName\"]);\n return this.write(Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n }));\n };\n ApolloCache.prototype.updateQuery = function (options, update) {\n return this.batch({\n update: function (cache) {\n var value = cache.readQuery(options);\n var data = update(value);\n if (data === void 0 || data === null)\n return value;\n cache.writeQuery(__assign(__assign({}, options), { data: data }));\n return data;\n },\n });\n };\n ApolloCache.prototype.updateFragment = function (options, update) {\n return this.batch({\n update: function (cache) {\n var value = cache.readFragment(options);\n var data = update(value);\n if (data === void 0 || data === null)\n return value;\n cache.writeFragment(__assign(__assign({}, options), { data: data }));\n return data;\n },\n });\n };\n return ApolloCache;\n}());\nexport { ApolloCache };\n//# sourceMappingURL=cache.js.map","import { __extends } from \"tslib\";\nvar MissingFieldError = (function (_super) {\n __extends(MissingFieldError, _super);\n function MissingFieldError(message, path, query, variables) {\n var _a;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.path = path;\n _this.query = query;\n _this.variables = variables;\n if (Array.isArray(_this.path)) {\n _this.missing = _this.message;\n for (var i = _this.path.length - 1; i >= 0; --i) {\n _this.missing = (_a = {}, _a[_this.path[i]] = _this.missing, _a);\n }\n }\n else {\n _this.missing = _this.path;\n }\n _this.__proto__ = MissingFieldError.prototype;\n return _this;\n }\n return MissingFieldError;\n}(Error));\nexport { MissingFieldError };\n//# sourceMappingURL=common.js.map","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\nexport class Trie {\n constructor(weakness = true, makeData = defaultMakeData) {\n this.weakness = weakness;\n this.makeData = makeData;\n }\n lookup(...array) {\n return this.lookupArray(array);\n }\n lookupArray(array) {\n let node = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data\n : node.data = this.makeData(slice.call(array));\n }\n peek(...array) {\n return this.peekArray(array);\n }\n peekArray(array) {\n let node = this;\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map = this.weakness && isObjRef(array[i]) ? node.weak : node.strong;\n node = map && map.get(array[i]);\n }\n return node && node.data;\n }\n getChildTrie(key) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap())\n : this.strong || (this.strong = new Map());\n let child = map.get(key);\n if (!child)\n map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n}\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null)\n break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n//# sourceMappingURL=index.js.map","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, createFragmentMap, getFragmentDefinitions, isArray, } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function isNullish(value) {\n return value === null || value === void 0;\n}\nexport { isArray };\nexport function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename, id = _a.id, _id = _a._id;\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n !isNullish(id) ? { id: id } :\n !isNullish(_id) ? { _id: _id } :\n void 0;\n }\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n if (!isNullish(id)) {\n return \"\".concat(__typename, \":\").concat((typeof id === \"number\" ||\n typeof id === \"string\") ? id : JSON.stringify(id));\n }\n }\n}\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n canonizeResults: false,\n};\nexport function normalizeConfig(config) {\n return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n var value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference)\n ? store.get(objectOrReference.__ref, \"__typename\")\n : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (isNonNullObject(result)) {\n return isArray(result)\n ? result.every(function (item) { return selectionSetMatchesResult(selectionSet, item, variables); })\n : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n return true;\n });\n }\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return isNonNullObject(value) &&\n !isReference(value) &&\n !isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger;\n}\nexport function extractFragmentContext(document, fragments) {\n var fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap: fragmentMap,\n lookupFragment: function (name) {\n var def = fragmentMap[name];\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n return def || null;\n },\n };\n}\n//# sourceMappingURL=helpers.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\nvar delModifier = function () { return DELETE; };\nvar INVALIDATE = Object.create(null);\nvar EntityStore = (function () {\n function EntityStore(policies, group) {\n var _this = this;\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n this.getFieldValue = function (objectOrReference, storeFieldName) { return maybeDeepFreeze(isReference(objectOrReference)\n ? _this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]); };\n this.canRead = function (objOrRef) {\n return isReference(objOrRef)\n ? _this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n var id = _this.policies.identify(objOrIdOrRef)[0];\n if (id) {\n var ref = makeReference(id);\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n }\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence)\n this.group.depend(dataId, \"__exists\");\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n EntityStore.prototype.merge = function (older, newer) {\n var _this = this;\n var dataId;\n if (isReference(older))\n older = older.__ref;\n if (isReference(newer))\n newer = newer.__ref;\n var existing = typeof older === \"string\"\n ? this.lookup(dataId = older)\n : older;\n var incoming = typeof newer === \"string\"\n ? this.lookup(dataId = newer)\n : newer;\n if (!incoming)\n return;\n __DEV__ ? invariant(typeof dataId === \"string\", \"store.merge expects a string ID\") : invariant(typeof dataId === \"string\", 1);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing)\n fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName &&\n !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n if (fieldsToDirty_1.__typename &&\n !(existing && existing.__typename) &&\n this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty_1.__typename;\n }\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) { return _this.group.dirty(dataId, fieldName); });\n }\n }\n };\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function (fieldNameOrOptions, from) { return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n } : fieldNameOrOptions, { store: _this }); },\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0)\n return;\n var modify = typeof fields === \"function\"\n ? fields\n : fields[storeFieldName] || fields[fieldName];\n if (modify) {\n var newValue = modify === delModifier ? DELETE :\n modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), { fieldName: fieldName, storeFieldName: storeFieldName, storage: _this.getStorage(dataId, storeFieldName) }));\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n }\n else {\n if (newValue === DELETE)\n newValue = void 0;\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n }\n else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n return true;\n }\n }\n return false;\n };\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args\n ? this.policies.getStoreFieldName({ typename: typename, fieldName: fieldName, args: args })\n : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {},\n _a[storeFieldName] = delModifier,\n _a) : delModifier);\n }\n return false;\n };\n EntityStore.prototype.evict = function (options, limit) {\n var evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n };\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n EntityStore.prototype.extract = function () {\n var _this = this;\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n };\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n if (newData) {\n var __META = newData.__META, rest_1 = __rest(newData, [\"__META\"]);\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count)\n delete this.rootIds[rootId];\n return count;\n }\n return 0;\n };\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) { ids = new Set(); }\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n }\n else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n };\n EntityStore.prototype.gc = function () {\n var _this = this;\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n var root_1 = this;\n while (root_1 instanceof Layer)\n root_1 = root_1.parent;\n idsToRemove.forEach(function (id) { return root_1.delete(id); });\n }\n return idsToRemove;\n };\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var root = this.data[dataId];\n if (!root)\n return found_1;\n var workSet_1 = new Set([root]);\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n var child = obj[key];\n if (isNonNullObject(child)) {\n workSet_1.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n };\n EntityStore.prototype.makeCacheKey = function () {\n return this.group.keyMaker.lookupArray(arguments);\n };\n return EntityStore;\n}());\nexport { EntityStore };\nvar CacheGroup = (function () {\n function CacheGroup(caching, parent) {\n if (parent === void 0) { parent = null; }\n this.caching = caching;\n this.parent = parent;\n this.d = null;\n this.resetCaching();\n }\n CacheGroup.prototype.resetCaching = function () {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n };\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n };\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName), storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n }\n };\n return CacheGroup;\n}());\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n if (supportsResultCaching(store)) {\n store.group.depend(entityId, \"__exists\");\n }\n}\n(function (EntityStore) {\n var Root = (function (_super) {\n __extends(Root, _super);\n function Root(_a) {\n var policies = _a.policies, _b = _a.resultCaching, resultCaching = _b === void 0 ? true : _b, seed = _a.seed;\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n _this.stump = new Stump(_this);\n _this.storageTrie = new Trie(canUseWeakMap);\n if (seed)\n _this.replace(seed);\n return _this;\n }\n Root.prototype.addLayer = function (layerId, replay) {\n return this.stump.addLayer(layerId, replay);\n };\n Root.prototype.removeLayer = function () {\n return this;\n };\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n return Root;\n }(EntityStore));\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n var parent = this.parent.removeLayer(layerId);\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n var ownStoreObject = _this.data[dataId];\n var parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n _this.delete(dataId);\n }\n else if (!ownStoreObject) {\n _this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n _this.group.dirty(dataId, storeFieldName);\n });\n }\n else if (ownStoreObject !== parentStoreObject) {\n Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n _this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n return parent;\n }\n if (parent === this.parent)\n return this;\n return parent.addLayer(this.id, this.replay);\n };\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n while (p.parent)\n p = p.parent;\n return p.getStorage.apply(p, arguments);\n };\n return Layer;\n}(EntityStore));\nvar Stump = (function (_super) {\n __extends(Stump, _super);\n function Stump(root) {\n return _super.call(this, \"EntityStore.Stump\", root, function () { }, new CacheGroup(root.group.caching, root.group)) || this;\n }\n Stump.prototype.removeLayer = function () {\n return this;\n };\n Stump.prototype.merge = function () {\n return this.parent.merge.apply(this.parent, arguments);\n };\n return Stump;\n}(Layer));\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}\n//# sourceMappingURL=entityStore.js.map","import { __assign } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray, } from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\nfunction shallowCopy(value) {\n if (isObjectOrArray(value)) {\n return isArray(value)\n ? value.slice(0)\n : __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n return value;\n}\nvar ObjectCanon = (function () {\n function ObjectCanon() {\n this.known = new (canUseWeakSet ? WeakSet : Set)();\n this.pool = new Trie(canUseWeakMap);\n this.passes = new WeakMap();\n this.keysByJSON = new Map();\n this.empty = this.admit({});\n }\n ObjectCanon.prototype.isKnown = function (value) {\n return isObjectOrArray(value) && this.known.has(value);\n };\n ObjectCanon.prototype.pass = function (value) {\n if (isObjectOrArray(value)) {\n var copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n };\n ObjectCanon.prototype.admit = function (value) {\n var _this = this;\n if (isObjectOrArray(value)) {\n var original = this.passes.get(value);\n if (original)\n return original;\n var proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value))\n return value;\n var array = value.map(this.admit, this);\n var node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add(node.array = array);\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n case null:\n case Object.prototype: {\n if (this.known.has(value))\n return value;\n var proto_1 = Object.getPrototypeOf(value);\n var array_1 = [proto_1];\n var keys = this.sortedKeys(value);\n array_1.push(keys.json);\n var firstValueIndex_1 = array_1.length;\n keys.sorted.forEach(function (key) {\n array_1.push(_this.admit(value[key]));\n });\n var node = this.pool.lookupArray(array_1);\n if (!node.object) {\n var obj_1 = node.object = Object.create(proto_1);\n this.known.add(obj_1);\n keys.sorted.forEach(function (key, i) {\n obj_1[key] = array_1[firstValueIndex_1 + i];\n });\n if (__DEV__) {\n Object.freeze(obj_1);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n };\n ObjectCanon.prototype.sortedKeys = function (obj) {\n var keys = Object.keys(obj);\n var node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n var json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = { sorted: keys, json: json });\n }\n }\n return node.keys;\n };\n return ObjectCanon;\n}());\nexport { ObjectCanon };\nexport var canonicalStringify = Object.assign(function (value) {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n var canonical = stringifyCanon.admit(value);\n var json = stringifyCache.get(canonical);\n if (json === void 0) {\n stringifyCache.set(canonical, json = JSON.stringify(canonical));\n }\n return json;\n }\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify,\n});\nvar stringifyCanon;\nvar stringifyCache;\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon;\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}\n//# sourceMappingURL=object-canon.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { Kind, } from 'graphql';\nimport { wrap } from 'optimism';\nimport { isField, resultKeyNameFromField, isReference, makeReference, shouldInclude, addTypenameToDocument, getDefaultValues, getMainDefinition, getQueryDefinition, getFragmentFromSelection, maybeDeepFreeze, mergeDeepArray, DeepMerger, isNonNullObject, canUseWeakMap, compact, } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from \"./entityStore.js\";\nimport { isArray, extractFragmentContext, getTypenameFromStoreObject, shouldCanonizeResults } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { canonicalStringify, ObjectCanon } from \"./object-canon.js\";\n;\nfunction execSelectionSetKeyArgs(options) {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n options.context.canonizeResults,\n ];\n}\nvar StoreReader = (function () {\n function StoreReader(config) {\n var _this = this;\n this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n this.canon = config.canon || new ObjectCanon;\n this.executeSelectionSet = wrap(function (options) {\n var _a;\n var canonizeResults = options.context.canonizeResults;\n var peekArgs = execSelectionSetKeyArgs(options);\n peekArgs[3] = !canonizeResults;\n var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n if (other) {\n if (canonizeResults) {\n return __assign(__assign({}, other), { result: _this.canon.admit(other.result) });\n }\n return other;\n }\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSelectionSetImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n makeCacheKey: function (selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (_a) {\n var field = _a.field, array = _a.array, context = _a.context;\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n }\n StoreReader.prototype.resetCanon = function () {\n this.canon = new ObjectCanon;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store, query = _a.query, _b = _a.rootId, rootId = _b === void 0 ? 'ROOT_QUERY' : _b, variables = _a.variables, _c = _a.returnPartialData, returnPartialData = _c === void 0 ? true : _c, _d = _a.canonizeResults, canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var rootRef = makeReference(rootId);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: __assign({ store: store, query: query, policies: policies, variables: variables, varString: canonicalStringify(variables), canonizeResults: canonizeResults }, extractFragmentContext(query, this.config.fragments)),\n });\n var missing;\n if (execResult.missing) {\n missing = [new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables)];\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n return {\n result: execResult.result,\n complete: !missing,\n missing: missing,\n };\n };\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context, this.canon.isKnown(result));\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n };\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet, objectOrReference = _a.objectOrReference, enclosingRef = _a.enclosingRef, context = _a.context;\n if (isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: \"Dangling reference to missing \".concat(objectOrReference.__ref, \" object\"),\n };\n }\n var variables = context.variables, policies = context.policies, store = context.store;\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n var objectsToMerge = [];\n var missing;\n var missingMerger = new DeepMerger();\n if (this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({ __typename: typename });\n }\n function handleMissing(result, resultName) {\n var _a;\n if (result.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));\n }\n return result.result;\n }\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a, _b;\n if (!shouldInclude(selection, variables))\n return;\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n }, context);\n var resultName = resultKeyNameFromField(selection);\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, (_a = {},\n _a[resultName] = \"Can't find field '\".concat(selection.name.value, \"' on \").concat(isReference(objectOrReference)\n ? objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2)),\n _a));\n }\n }\n else if (isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef: enclosingRef,\n context: context,\n }), resultName);\n }\n else if (!selection.selectionSet) {\n if (context.canonizeResults) {\n fieldValue = _this.canon.pass(fieldValue);\n }\n }\n else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context: context,\n }), resultName);\n }\n if (fieldValue !== void 0) {\n objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));\n }\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(5);\n }\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n var result = mergeDeepArray(objectsToMerge);\n var finalResult = { result: result, missing: missing };\n var frozen = context.canonizeResults\n ? this.canon.admit(finalResult)\n : maybeDeepFreeze(finalResult);\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n return frozen;\n };\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;\n var missing;\n var missingMerger = new DeepMerger();\n function handleMissing(childResult, i) {\n var _a;\n if (childResult.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));\n }\n return childResult.result;\n }\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n if (isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n enclosingRef: enclosingRef,\n context: context,\n }), i);\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context: context,\n }), i);\n }\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n return item;\n });\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing: missing,\n };\n };\n return StoreReader;\n}());\nexport { StoreReader };\nfunction firstMissing(tree) {\n try {\n JSON.stringify(tree, function (_, value) {\n if (typeof value === \"string\")\n throw value;\n return value;\n });\n }\n catch (result) {\n return result;\n }\n}\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (isNonNullObject(value)) {\n __DEV__ ? invariant(!isReference(value), \"Missing selection set for object of type \".concat(getTypenameFromStoreObject(store, value), \" returned for query field \").concat(field.name.value)) : invariant(!isReference(value), 6);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}\n//# sourceMappingURL=readFromStore.js.map","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set,\n dep: dep(),\n });\n }\n return info;\n}\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.forgetCache(cache); });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.attachCache(cache); });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n var rv = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) { return listener(value); });\n }\n }\n else {\n var cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n return value;\n };\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n rv.forgetCache = function (cache) { return caches.delete(cache); };\n return rv;\n}\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n//# sourceMappingURL=reactiveVars.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport { argumentsObjectFromField, DeepMerger, isNonEmptyArray, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, isArray } from \"./helpers.js\";\nvar specifierInfoCache = Object.create(null);\nfunction lookupSpecifierInfo(spec) {\n var cacheKey = JSON.stringify(spec);\n return specifierInfoCache[cacheKey] ||\n (specifierInfoCache[cacheKey] = Object.create(null));\n}\nexport function keyFieldsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyFieldsFn || (info.keyFieldsFn = function (object, context) {\n var extract = function (from, key) { return context.readField(key, from); };\n var keyObject = context.keyObject = collectSpecifierPaths(specifier, function (schemaKeyPath) {\n var extracted = extractKeyPath(context.storeObject, schemaKeyPath, extract);\n if (extracted === void 0 &&\n object !== context.storeObject &&\n hasOwn.call(object, schemaKeyPath[0])) {\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n __DEV__ ? invariant(extracted !== void 0, \"Missing field '\".concat(schemaKeyPath.join('.'), \"' while extracting keyFields from \").concat(JSON.stringify(object))) : invariant(extracted !== void 0, 2);\n return extracted;\n });\n return \"\".concat(context.typename, \":\").concat(JSON.stringify(keyObject));\n });\n}\nexport function keyArgsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyArgsFn || (info.keyArgsFn = function (args, _a) {\n var field = _a.field, variables = _a.variables, fieldName = _a.fieldName;\n var collected = collectSpecifierPaths(specifier, function (keyPath) {\n var firstKey = keyPath[0];\n var firstChar = firstKey.charAt(0);\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n var directiveName_1 = firstKey.slice(1);\n var d = field.directives.find(function (d) { return d.name.value === directiveName_1; });\n var directiveArgs = d && argumentsObjectFromField(d, variables);\n return directiveArgs && extractKeyPath(directiveArgs, keyPath.slice(1));\n }\n return;\n }\n if (firstChar === \"$\") {\n var variableName = firstKey.slice(1);\n if (variables && hasOwn.call(variables, variableName)) {\n var varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n return;\n }\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n var suffix = JSON.stringify(collected);\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n return fieldName;\n });\n}\nexport function collectSpecifierPaths(specifier, extractor) {\n var merger = new DeepMerger;\n return getSpecifierPaths(specifier).reduce(function (collected, path) {\n var _a;\n var toMerge = extractor(path);\n if (toMerge !== void 0) {\n for (var i = path.length - 1; i >= 0; --i) {\n toMerge = (_a = {}, _a[path[i]] = toMerge, _a);\n }\n collected = merger.merge(collected, toMerge);\n }\n return collected;\n }, Object.create(null));\n}\nexport function getSpecifierPaths(spec) {\n var info = lookupSpecifierInfo(spec);\n if (!info.paths) {\n var paths_1 = info.paths = [];\n var currentPath_1 = [];\n spec.forEach(function (s, i) {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach(function (p) { return paths_1.push(currentPath_1.concat(p)); });\n currentPath_1.length = 0;\n }\n else {\n currentPath_1.push(s);\n if (!isArray(spec[i + 1])) {\n paths_1.push(currentPath_1.slice(0));\n currentPath_1.length = 0;\n }\n }\n });\n }\n return info.paths;\n}\nfunction extractKey(object, key) {\n return object[key];\n}\nexport function extractKeyPath(object, path, extract) {\n extract = extract || extractKey;\n return normalize(path.reduce(function reducer(obj, key) {\n return isArray(obj)\n ? obj.map(function (child) { return reducer(child, key); })\n : obj && extract(obj, key);\n }, object));\n}\nfunction normalize(value) {\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize);\n }\n return collectSpecifierPaths(Object.keys(value).sort(), function (path) { return extractKeyPath(value, path); });\n }\n return value;\n}\n//# sourceMappingURL=key-extractor.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, isNonNullObject, stringifyForDisplay, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, isArray, } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier } from \"./key-extractor.js\";\ngetStoreKeyName.setStringify(canonicalStringify);\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args :\n spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\nvar nullKeyFieldsFn = function () { return void 0; };\nvar simpleKeyArgsFn = function (_args, context) { return context.fieldName; };\nvar mergeTrueFn = function (existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\nvar mergeFalseFn = function (_, incoming) { return incoming; };\nvar Policies = (function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({ dataIdFromObject: defaultDataIdFromObject }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n Policies.prototype.identify = function (object, partialContext) {\n var _a;\n var policies = this;\n var typename = partialContext && (partialContext.typename ||\n ((_a = partialContext.storeObject) === null || _a === void 0 ? void 0 : _a.__typename)) || object.__typename;\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n var storeObject = partialContext && partialContext.storeObject || object;\n var context = __assign(__assign({}, partialContext), { typename: typename, storeObject: storeObject, readField: partialContext && partialContext.readField || function () {\n var options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables,\n });\n } });\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n while (keyFn) {\n var specifierOrId = keyFn(__assign(__assign({}, object), storeObject), context);\n if (isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n }\n else {\n id = specifierOrId;\n break;\n }\n }\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename], queryType = _a.queryType, mutationType = _a.mutationType, subscriptionType = _a.subscriptionType, incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n if (queryType)\n _this.setRootTypename(\"Query\", typename);\n if (mutationType)\n _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType)\n _this.setRootTypename(\"Subscription\", typename);\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n }\n else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields, fields = incoming.fields;\n function setMerge(existing, merge) {\n existing.merge =\n typeof merge === \"function\" ? merge :\n merge === true ? mergeTrueFn :\n merge === false ? mergeFalseFn :\n existing.merge;\n }\n setMerge(existing, incoming.merge);\n existing.keyFn =\n keyFields === false ? nullKeyFieldsFn :\n isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) :\n typeof keyFields === \"function\" ? keyFields :\n existing.keyFn;\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n var incoming = fields[fieldName];\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n }\n else {\n var keyArgs = incoming.keyArgs, read = incoming.read, merge = incoming.merge;\n existing.keyFn =\n keyArgs === false ? simpleKeyArgsFn :\n isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) :\n typeof keyArgs === \"function\" ? keyArgs :\n existing.keyFn;\n if (typeof read === \"function\") {\n existing.read = read;\n }\n setMerge(existing, merge);\n }\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) { typename = which; }\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n __DEV__ ? invariant(!old || old === which, \"Cannot change root \".concat(which, \" __typename more than once\")) : invariant(!old || old === which, 3);\n if (old)\n delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n var match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype), fields = _a.fields, rest = __rest(_a, [\"fields\"]);\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n var inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n return this.typePolicies[typename];\n };\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || (createIfMissing && (fieldPolicies[fieldName] = Object.create(null)));\n }\n };\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n return supertypeSet;\n };\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n if (!fragment.typeCondition)\n return true;\n if (!typename)\n return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype)\n return true;\n if (this.usingPossibleTypes &&\n this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n var maybeEnqueue_1 = function (subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n if (supertypeSet &&\n supertypeSet.size &&\n workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n __DEV__ && invariant.warn(\"Inferring subtype \".concat(typename, \" of supertype \").concat(supertype));\n }\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n supertypeSet.forEach(maybeEnqueue_1);\n if (needToCheckFuzzySubtypes &&\n i === workQueue_1.length - 1 &&\n selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n return false;\n };\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename, fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n }\n else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field\n ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n if (storeFieldName === false) {\n return fieldName;\n }\n return fieldName === fieldNameFromStoreName(storeFieldName)\n ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n };\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference)\n return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField)\n return;\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename)\n options.typename = typename;\n }\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference)\n ? objectOrReference.__ref\n : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n return existing;\n };\n Policies.prototype.getReadFunction = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n };\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n };\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field, typename = _a.typename, merge = _a.merge;\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store)(existing, incoming);\n }\n if (merge === mergeFalseFn) {\n return incoming;\n }\n if (context.overwrite) {\n existing = void 0;\n }\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, { typename: typename, fieldName: field.name.value, field: field, variables: context.variables }, context, storage || Object.create(null)));\n };\n return Policies;\n}());\nexport { Policies };\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store, toReference = _a.toReference, canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function () {\n return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context);\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\nexport function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) {\n var fieldNameOrOptions = readFieldArgs[0], from = readFieldArgs[1], argc = readFieldArgs.length;\n var options;\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n from: argc > 1 ? from : objectOrReference,\n };\n }\n else {\n options = __assign({}, fieldNameOrOptions);\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n if (__DEV__ && options.from === void 0) {\n __DEV__ && invariant.warn(\"Undefined 'from' passed to readField with arguments \".concat(stringifyForDisplay(Array.from(readFieldArgs))));\n }\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n return options;\n}\nfunction makeMergeObjectsFunction(store) {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw __DEV__ ? new InvariantError(\"Cannot automatically merge arrays\") : new InvariantError(4);\n }\n if (isNonNullObject(existing) &&\n isNonNullObject(incoming)) {\n var eType = store.getFieldValue(existing, \"__typename\");\n var iType = store.getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n if (typesDiffer) {\n return incoming;\n }\n if (isReference(existing) &&\n storeValueIsStoreObject(incoming)) {\n store.merge(existing.__ref, incoming);\n return existing;\n }\n if (storeValueIsStoreObject(existing) &&\n isReference(incoming)) {\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n if (storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)) {\n return __assign(__assign({}, existing), incoming);\n }\n }\n return incoming;\n };\n}\n//# sourceMappingURL=policies.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { Kind, } from 'graphql';\nimport { getFragmentFromSelection, getDefaultValues, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, isNonEmptyArray, argumentsObjectFromField, } from \"../../utilities/index.js\";\nimport { isArray, makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, extractFragmentContext } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\n;\nfunction getContextFlavor(context, clientOnly, deferred) {\n var key = \"\".concat(clientOnly).concat(deferred);\n var flavored = context.flavors.get(key);\n if (!flavored) {\n context.flavors.set(key, flavored = (context.clientOnly === clientOnly &&\n context.deferred === deferred) ? context : __assign(__assign({}, context), { clientOnly: clientOnly, deferred: deferred }));\n }\n return flavored;\n}\nvar StoreWriter = (function () {\n function StoreWriter(cache, reader, fragments) {\n this.cache = cache;\n this.reader = reader;\n this.fragments = fragments;\n }\n StoreWriter.prototype.writeToStore = function (store, _a) {\n var _this = this;\n var query = _a.query, result = _a.result, dataId = _a.dataId, variables = _a.variables, overwrite = _a.overwrite;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n var context = __assign(__assign({ store: store, written: Object.create(null), merge: function (existing, incoming) {\n return merger.merge(existing, incoming);\n }, variables: variables, varString: canonicalStringify(variables) }, extractFragmentContext(query, this.fragments)), { overwrite: !!overwrite, incomingById: new Map, clientOnly: false, deferred: false, flavors: new Map });\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map },\n context: context,\n });\n if (!isReference(ref)) {\n throw __DEV__ ? new InvariantError(\"Could not identify object \".concat(JSON.stringify(result))) : new InvariantError(7);\n }\n context.incomingById.forEach(function (_a, dataId) {\n var storeObject = _a.storeObject, mergeTree = _a.mergeTree, fieldNodeSet = _a.fieldNodeSet;\n var entityRef = makeReference(dataId);\n if (mergeTree && mergeTree.map.size) {\n var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context);\n if (isReference(applied)) {\n return;\n }\n storeObject = applied;\n }\n if (__DEV__ && !context.overwrite) {\n var fieldsWithSelectionSets_1 = Object.create(null);\n fieldNodeSet.forEach(function (field) {\n if (field.selectionSet) {\n fieldsWithSelectionSets_1[field.name.value] = true;\n }\n });\n var hasSelectionSet_1 = function (storeFieldName) {\n return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] === true;\n };\n var hasMergeFunction_1 = function (storeFieldName) {\n var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) &&\n !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store);\n }\n });\n }\n store.merge(dataId, storeObject);\n });\n store.retain(ref.__ref);\n return ref;\n };\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n var dataId = _a.dataId, result = _a.result, selectionSet = _a.selectionSet, context = _a.context, mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n var incoming = Object.create(null);\n var typename = (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && context.store.get(dataId, \"__typename\"));\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n var readField = function () {\n var options = normalizeReadFieldOptions(arguments, incoming, context.variables);\n if (isReference(options.from)) {\n var info = context.incomingById.get(options.from.__ref);\n if (info) {\n var result_1 = policies.readField(__assign(__assign({}, options), { from: info.storeObject }), context);\n if (result_1 !== void 0) {\n return result_1;\n }\n }\n }\n return policies.readField(options, context);\n };\n var fieldNodeSet = new Set();\n this.flattenFields(selectionSet, result, context, typename).forEach(function (context, field) {\n var _a;\n var resultFieldKey = resultKeyNameFromField(field);\n var value = result[resultFieldKey];\n fieldNodeSet.add(field);\n if (value !== void 0) {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables,\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n var incomingValue = _this.processFieldValue(value, field, field.selectionSet\n ? getContextFlavor(context, false, false)\n : context, childTree);\n var childTypename = void 0;\n if (field.selectionSet &&\n (isReference(incomingValue) ||\n storeValueIsStoreObject(incomingValue))) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n var merge = policies.getMergeFunction(typename, field.name.value, childTypename);\n if (merge) {\n childTree.info = {\n field: field,\n typename: typename,\n merge: merge,\n };\n }\n else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n incoming = context.merge(incoming, (_a = {},\n _a[storeFieldName] = incomingValue,\n _a));\n }\n else if (__DEV__ &&\n !context.clientOnly &&\n !context.deferred &&\n !addTypenameToDocument.added(field) &&\n !policies.getReadFunction(typename, field.name.value)) {\n __DEV__ && invariant.error(\"Missing field '\".concat(resultKeyNameFromField(field), \"' while writing result \").concat(JSON.stringify(result, null, 2)).substring(0, 1000));\n }\n });\n try {\n var _b = policies.identify(result, {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField: readField,\n }), id = _b[0], keyObject = _b[1];\n dataId = dataId || id;\n if (keyObject) {\n incoming = context.merge(incoming, keyObject);\n }\n }\n catch (e) {\n if (!dataId)\n throw e;\n }\n if (\"string\" === typeof dataId) {\n var dataRef = makeReference(dataId);\n var sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0)\n return dataRef;\n sets.push(selectionSet);\n if (this.reader && this.reader.isFresh(result, dataRef, selectionSet, context)) {\n return dataRef;\n }\n var previous_1 = context.incomingById.get(dataId);\n if (previous_1) {\n previous_1.storeObject = context.merge(previous_1.storeObject, incoming);\n previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree);\n fieldNodeSet.forEach(function (field) { return previous_1.fieldNodeSet.add(field); });\n }\n else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet: fieldNodeSet,\n });\n }\n return dataRef;\n }\n return incoming;\n };\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n if (!field.selectionSet || value === null) {\n return __DEV__ ? cloneDeep(value) : value;\n }\n if (isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree,\n });\n };\n StoreWriter.prototype.flattenFields = function (selectionSet, result, context, typename) {\n if (typename === void 0) { typename = getTypenameFromResult(result, selectionSet, context.fragmentMap); }\n var fieldMap = new Map();\n var policies = this.cache.policies;\n var limitingTrie = new Trie(false);\n (function flatten(selectionSet, inheritedContext) {\n var visitedNode = limitingTrie.lookup(selectionSet, inheritedContext.clientOnly, inheritedContext.deferred);\n if (visitedNode.visited)\n return;\n visitedNode.visited = true;\n selectionSet.selections.forEach(function (selection) {\n if (!shouldInclude(selection, context.variables))\n return;\n var clientOnly = inheritedContext.clientOnly, deferred = inheritedContext.deferred;\n if (!(clientOnly && deferred) &&\n isNonEmptyArray(selection.directives)) {\n selection.directives.forEach(function (dir) {\n var name = dir.name.value;\n if (name === \"client\")\n clientOnly = true;\n if (name === \"defer\") {\n var args = argumentsObjectFromField(dir, context.variables);\n if (!args || args.if !== false) {\n deferred = true;\n }\n }\n });\n }\n if (isField(selection)) {\n var existing = fieldMap.get(selection);\n if (existing) {\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred));\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(8);\n }\n if (fragment &&\n policies.fragmentMatches(fragment, typename, result, context.variables)) {\n flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred));\n }\n }\n });\n })(selectionSet, context);\n return fieldMap;\n };\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n var _this = this;\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = (!isArray(incoming) &&\n (isReference(existing) || storeValueIsStoreObject(existing))) ? existing : void 0;\n var i_1 = incoming;\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n var changedFields_1;\n var getValue_1 = function (from, name) {\n return isArray(from)\n ? (typeof name === \"number\" ? from[name] : void 0)\n : context.store.getFieldValue(from, String(name));\n };\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n if (void 0 === iVal)\n return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map;\n changedFields_1.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n if (changedFields_1) {\n incoming = (isArray(i_1) ? i_1.slice(0) : __assign({}, i_1));\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n return incoming;\n };\n return StoreWriter;\n}());\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map });\n }\n return map.get(name);\n}\nfunction mergeMergeTrees(left, right) {\n if (left === right || !right || mergeTreeIsEmpty(right))\n return left;\n if (!left || mergeTreeIsEmpty(left))\n return right;\n var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n var needToMergeMaps = left.map.size && right.map.size;\n var map = needToMergeMaps ? new Map :\n left.map.size ? left.map : right.map;\n var merged = { info: info, map: map };\n if (needToMergeMaps) {\n var remainingRightKeys_1 = new Set(right.map.keys());\n left.map.forEach(function (leftTree, key) {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys_1.delete(key);\n });\n remainingRightKeys_1.forEach(function (key) {\n merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n });\n }\n return merged;\n}\nfunction mergeTreeIsEmpty(tree) {\n return !tree || !(tree.info || tree.map.size);\n}\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\nvar warnings = new Set();\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function (objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n var existing = getChild(existingRef);\n if (!existing)\n return;\n var incoming = getChild(incomingObj);\n if (!incoming)\n return;\n if (isReference(existing))\n return;\n if (equal(existing, incoming))\n return;\n if (Object.keys(existing).every(function (key) { return store.getFieldValue(incoming, key) !== void 0; })) {\n return;\n }\n var parentType = store.getFieldValue(existingRef, \"__typename\") ||\n store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = \"\".concat(parentType, \".\").concat(fieldName);\n if (warnings.has(typeDotName))\n return;\n warnings.add(typeDotName);\n var childTypenames = [];\n if (!isArray(existing) &&\n !isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" &&\n !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n __DEV__ && invariant.warn(\"Cache data may be lost when replacing the \".concat(fieldName, \" field of a \").concat(parentType, \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \").concat(childTypenames.length\n ? \"either ensure all objects of type \" +\n childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \"\n : \"\", \"define a custom merge function for the \").concat(typeDotName, \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \").concat(JSON.stringify(existing).slice(0, 1000), \"\\n incoming: \").concat(JSON.stringify(incoming).slice(0, 1000), \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\"));\n}\n//# sourceMappingURL=writeToStore.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport \"./fixPolyfills.js\";\nimport { wrap } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference, } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nvar InMemoryCache = (function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this) || this;\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.config = normalizeConfig(config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies,\n });\n _this.init();\n return _this;\n }\n InMemoryCache.prototype.init = function () {\n var rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n });\n this.optimisticData = rootStore.stump;\n this.resetResultCache();\n };\n InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n var _this = this;\n var previousReader = this.storeReader;\n var fragments = this.config.fragments;\n this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities\n ? void 0\n : previousReader && previousReader.canon,\n fragments: fragments,\n }), fragments);\n this.maybeBroadcastWatch = wrap(function (c, options) {\n return _this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic, id = c.id, variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, canonicalStringify({ optimistic: optimistic, id: id, variables: variables }));\n }\n }\n });\n new Set([\n this.data.group,\n this.optimisticData.group,\n ]).forEach(function (group) { return group.resetCaching(); });\n };\n InMemoryCache.prototype.restore = function (data) {\n this.init();\n if (data)\n this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData, returnPartialData = _a === void 0 ? false : _a;\n try {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, config: this.config, returnPartialData: returnPartialData })).result || null;\n }\n catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n throw e;\n }\n };\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n var store = options.optimistic\n ? this.optimisticData\n : this.data;\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, rootId: options.id || \"ROOT_QUERY\", config: this.config }));\n };\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n if (!this.watches.size) {\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n InMemoryCache.prototype.gc = function (options) {\n canonicalStringify.reset();\n var ids = this.optimisticData.gc();\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n }\n else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n return ids;\n };\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n InMemoryCache.prototype.identify = function (object) {\n if (isReference(object))\n return object.__ref;\n try {\n return this.policies.identify(object)[0];\n }\n catch (e) {\n __DEV__ && invariant.warn(e);\n }\n };\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n options = __assign(__assign({}, options), { id: \"ROOT_QUERY\" });\n }\n try {\n ++this.txCount;\n return this.optimisticData.evict(options, this.data);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.reset = function (options) {\n var _this = this;\n this.init();\n canonicalStringify.reset();\n if (options && options.discardWatches) {\n this.watches.forEach(function (watch) { return _this.maybeBroadcastWatch.forget(watch); });\n this.watches.clear();\n forgetCache(this);\n }\n else {\n this.broadcastWatches();\n }\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n InMemoryCache.prototype.batch = function (options) {\n var _this = this;\n var update = options.update, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, removeOptimistic = options.removeOptimistic, onWatchUpdated = options.onWatchUpdated;\n var updateResult;\n var perform = function (layer) {\n var _a = _this, data = _a.data, optimisticData = _a.optimisticData;\n ++_this.txCount;\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n try {\n return updateResult = update(_this);\n }\n finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n var alreadyDirty = new Set();\n if (onWatchUpdated && !this.txCount) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch) {\n alreadyDirty.add(watch);\n return false;\n } }));\n }\n if (typeof optimistic === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n }\n else if (optimistic === false) {\n perform(this.data);\n }\n else {\n perform();\n }\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch, diff) {\n var result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n alreadyDirty.delete(watch);\n }\n return result;\n } }));\n if (alreadyDirty.size) {\n alreadyDirty.forEach(function (watch) { return _this.maybeBroadcastWatch.dirty(watch); });\n }\n }\n else {\n this.broadcastWatches(options);\n }\n return updateResult;\n };\n InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n return this.batch({\n update: update,\n optimistic: optimisticId || (optimisticId !== null),\n });\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.transformForLink = function (document) {\n var fragments = this.config.fragments;\n return fragments\n ? fragments.transform(document)\n : document;\n };\n InMemoryCache.prototype.broadcastWatches = function (options) {\n var _this = this;\n if (!this.txCount) {\n this.watches.forEach(function (c) { return _this.maybeBroadcastWatch(c, options); });\n }\n };\n InMemoryCache.prototype.broadcastWatch = function (c, options) {\n var lastDiff = c.lastDiff;\n var diff = this.diff(c);\n if (options) {\n if (c.optimistic &&\n typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n if (options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n return;\n }\n }\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n };\n return InMemoryCache;\n}(ApolloCache));\nexport { InMemoryCache };\n//# sourceMappingURL=inMemoryCache.js.map","export var NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}\n//# sourceMappingURL=networkStatus.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass, getQueryDefinition, } from \"../utilities/index.js\";\nvar assign = Object.assign, hasOwnProperty = Object.hasOwnProperty;\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager, queryInfo = _a.queryInfo, options = _a.options;\n var _this = _super.call(this, function (observer) {\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n }\n catch (_a) { }\n var first = !_this.observers.size;\n _this.observers.add(observer);\n var last = _this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n }\n else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n if (first) {\n _this.reobserve().catch(function () { });\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.queryInfo = queryInfo;\n _this.queryManager = queryManager;\n _this.isTornDown = false;\n var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e, _f = options.initialFetchPolicy, initialFetchPolicy = _f === void 0 ? (fetchPolicy === \"standby\" ? defaultFetchPolicy : fetchPolicy) : _f;\n _this.options = __assign(__assign({}, options), { initialFetchPolicy: initialFetchPolicy, fetchPolicy: fetchPolicy });\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(_this.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n return _this;\n }\n Object.defineProperty(ObservableQuery.prototype, \"query\", {\n get: function () {\n return this.queryManager.transform(this.options.query).document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function () {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function (result) {\n resolve(result);\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n var subscription = _this.subscribe(observer);\n });\n };\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) { saveAsLastResult = true; }\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n var result = __assign(__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });\n var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n if (fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache' ||\n fetchPolicy === 'standby' ||\n this.queryManager.transform(this.options.query).hasForcedResolvers) {\n }\n else {\n var diff = this.queryInfo.getDiff();\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n if (diff.complete) {\n delete result.partial;\n if (diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === 'cache-first' ||\n fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n }\n else {\n result.partial = true;\n }\n if (__DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n return result;\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {\n return (!this.last ||\n !equal(this.last.result, newResult) ||\n (variables && !equal(this.last.variables, variables)));\n };\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n if (last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n var reobserveOptions = {\n pollInterval: 0,\n };\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'cache-and-network') {\n reobserveOptions.fetchPolicy = fetchPolicy;\n }\n else if (fetchPolicy === 'no-cache') {\n reobserveOptions.fetchPolicy = 'no-cache';\n }\n else {\n reobserveOptions.fetchPolicy = 'network-only';\n }\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.query);\n var vars = queryDef.variableDefinitions;\n if (!vars || !vars.some(function (v) { return v.variable.name.value === \"variables\"; })) {\n __DEV__ && invariant.warn(\"Called refetch(\".concat(JSON.stringify(variables), \") for query \").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), \", which does not declare a $variables variable.\\nDid you mean to call refetch(variables) instead of refetch({ variables })?\"));\n }\n }\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign(__assign({}, this.options), { query: this.query }), fetchMoreOptions), { variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables) }))), { fetchPolicy: \"no-cache\" });\n var qid = this.queryManager.generateQueryId();\n var queryInfo = this.queryInfo;\n var originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n var updatedQuerySet = new Set();\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n _this.queryManager.removeQuery(qid);\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n _this.queryManager.cache.batch({\n update: function (cache) {\n var updateQuery = fetchMoreOptions.updateQuery;\n if (updateQuery) {\n cache.updateQuery({\n query: _this.query,\n variables: _this.variables,\n returnPartialData: true,\n optimistic: false,\n }, function (previous) { return updateQuery(previous, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n }); });\n }\n else {\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data,\n });\n }\n },\n onWatchUpdated: function (watch) {\n updatedQuerySet.add(watch.query);\n },\n });\n return fetchMoreResult;\n }).finally(function () {\n if (!updatedQuerySet.has(_this.query)) {\n reobserveCacheFirst(_this);\n }\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables,\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n __DEV__ && invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size\n ? this.result()\n : Promise.resolve();\n }\n this.options.variables = variables;\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.reobserve({\n fetchPolicy: this.options.initialFetchPolicy,\n variables: variables,\n }, NetworkStatus.setVariables);\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables,\n });\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {\n if (options.nextFetchPolicy) {\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n if (fetchPolicy === \"standby\") {\n }\n else if (typeof options.nextFetchPolicy === \"function\") {\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason: reason,\n options: options,\n observable: this,\n initialFetchPolicy: initialFetchPolicy,\n });\n }\n else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n }\n else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n return options.fetchPolicy;\n };\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {\n this.queryManager.setObservableQuery(this);\n return this.queryManager['fetchConcastWithInfo'](this.queryId, options, newNetworkStatus);\n };\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n if (this.queryManager.ssrMode) {\n return;\n }\n var _a = this, pollingInfo = _a.pollingInfo, pollInterval = _a.options.pollInterval;\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n if (pollingInfo &&\n pollingInfo.interval === pollInterval) {\n return;\n }\n __DEV__ ? invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : invariant(pollInterval, 13);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n var maybeFetch = function () {\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus)) {\n _this.reobserve({\n fetchPolicy: _this.options.initialFetchPolicy === 'no-cache' ? 'no-cache' : 'network-only',\n }, NetworkStatus.poll).then(poll, poll);\n }\n else {\n poll();\n }\n }\n ;\n };\n var poll = function () {\n var info = _this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n poll();\n };\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) { variables = this.variables; }\n this.last = __assign(__assign({}, this.last), { result: this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult), variables: variables });\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n return this.last;\n };\n ObservableQuery.prototype.reobserveAsConcast = function (newOptions, newNetworkStatus) {\n var _this = this;\n this.isTornDown = false;\n var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch ||\n newNetworkStatus === NetworkStatus.fetchMore ||\n newNetworkStatus === NetworkStatus.poll;\n var oldVariables = this.options.variables;\n var oldFetchPolicy = this.options.fetchPolicy;\n var mergedOptions = compact(this.options, newOptions || {});\n var options = useDisposableConcast\n ? mergedOptions\n : assign(this.options, mergedOptions);\n if (!useDisposableConcast) {\n this.updatePolling();\n if (newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n options.fetchPolicy !== \"standby\" &&\n options.fetchPolicy === oldFetchPolicy) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n var variables = options.variables && __assign({}, options.variables);\n var _a = this.fetch(options, newNetworkStatus), concast = _a.concast, fromLink = _a.fromLink;\n var observer = {\n next: function (result) {\n _this.reportResult(result, variables);\n },\n error: function (error) {\n _this.reportError(error, variables);\n },\n };\n if (!useDisposableConcast && fromLink) {\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n this.concast = concast;\n this.observer = observer;\n }\n concast.addObserver(observer);\n return concast;\n };\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n return this.reobserveAsConcast(newOptions, newNetworkStatus).promise;\n };\n ObservableQuery.prototype.observe = function () {\n this.reportResult(this.getCurrentResult(false), this.variables);\n };\n ObservableQuery.prototype.reportResult = function (result, variables) {\n var lastError = this.getLastError();\n if (lastError || this.isDifferentFromLastResult(result, variables)) {\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n iterateObserversSafely(this.observers, 'next', result);\n }\n };\n ObservableQuery.prototype.reportError = function (error, variables) {\n var errorResult = __assign(__assign({}, this.getLastResult()), { error: error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false });\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, 'error', this.last.error = error);\n };\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown)\n return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n this.stopPolling();\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\nexport function reobserveCacheFirst(obsQuery) {\n var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;\n if (fetchPolicy === \"cache-and-network\" ||\n fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: function () {\n this.nextFetchPolicy = nextFetchPolicy;\n if (typeof nextFetchPolicy === \"function\") {\n return nextFetchPolicy.apply(this, arguments);\n }\n return fetchPolicy;\n },\n });\n }\n return obsQuery.reobserve();\n}\nfunction defaultSubscriptionObserverErrorCallback(error) {\n __DEV__ && invariant.error('Unhandled error', error.message, error.stack);\n}\nexport function logMissingFieldErrors(missing) {\n if (__DEV__ && missing) {\n __DEV__ && invariant.debug(\"Missing cache result fields: \".concat(JSON.stringify(missing)), missing);\n }\n}\n//# sourceMappingURL=ObservableQuery.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK, isSelectionNode, } from 'graphql';\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude, } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\nvar LocalState = (function () {\n function LocalState(_a) {\n var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;\n this.selectionsToResolveCache = new WeakMap();\n this.cache = cache;\n if (client) {\n this.client = client;\n }\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n }\n else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document, remoteResult = _a.remoteResult, context = _a.context, variables = _a.variables, _b = _a.onlyRunForcedResolvers, onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];\n }\n return [2, remoteResult];\n });\n });\n };\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n };\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), { cache: cache, getCacheKey: function (obj) {\n return cache.identify(obj);\n } });\n };\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) { variables = {}; }\n if (context === void 0) { context = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) { return (__assign(__assign({}, variables), data.exportedVariables)); })];\n }\n return [2, __assign({}, variables)];\n });\n });\n };\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function (node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true;\n });\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n };\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n };\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) { context = {}; }\n if (variables === void 0) { variables = {}; }\n if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }\n if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a, cache, client, execContext, isClientFieldDescendant;\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation\n ? definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), { cache: cache, client: client }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n selectionsToResolve: selectionsToResolve,\n onlyRunForcedResolvers: onlyRunForcedResolvers,\n };\n isClientFieldDescendant = false;\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (result) { return ({\n result: result,\n exportedVariables: execContext.exportedVariables,\n }); })];\n });\n });\n };\n LocalState.prototype.resolveSelectionSet = function (selectionSet, isClientFieldDescendant, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n var _this = this;\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n execute = function (selection) { return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) {\n return [2];\n }\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n if (isField(selection)) {\n return [2, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function (fieldResult) {\n var _a;\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n })];\n }\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = fragmentMap[selection.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(selection.name.value)) : invariant(fragment, 11);\n }\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n return [2];\n });\n }); };\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n LocalState.prototype.resolveField = function (field, isClientFieldDescendant, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n var _this = this;\n return __generator(this, function (_a) {\n if (!rootValue) {\n return [2, null];\n }\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n if (!execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field: field, fragmentMap: execContext.fragmentMap },\n ]));\n }\n }\n }\n return [2, resultPromise.then(function (result) {\n var _a, _b;\n if (result === void 0) { result = defaultResult; }\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n if (!field.selectionSet) {\n return result;\n }\n if (result == null) {\n return result;\n }\n var isClientField = (_b = (_a = field.directives) === null || _a === void 0 ? void 0 : _a.some(function (d) { return d.name.value === 'client'; })) !== null && _b !== void 0 ? _b : false;\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result, execContext);\n }\n })];\n });\n });\n };\n LocalState.prototype.resolveSubSelectedArray = function (field, isClientFieldDescendant, result, execContext) {\n var _this = this;\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);\n }\n }));\n };\n LocalState.prototype.collectSelectionsToResolve = function (mainDefinition, fragmentMap) {\n var isSingleASTNode = function (node) { return !Array.isArray(node); };\n var selectionsToResolveCache = this.selectionsToResolveCache;\n function collectByDefinition(definitionNode) {\n if (!selectionsToResolveCache.has(definitionNode)) {\n var matches_1 = new Set();\n selectionsToResolveCache.set(definitionNode, matches_1);\n visit(definitionNode, {\n Directive: function (node, _, __, ___, ancestors) {\n if (node.name.value === 'client') {\n ancestors.forEach(function (node) {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches_1.add(node);\n }\n });\n }\n },\n FragmentSpread: function (spread, _, __, ___, ancestors) {\n var fragment = fragmentMap[spread.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(spread.name.value)) : invariant(fragment, 12);\n var fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n ancestors.forEach(function (node) {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches_1.add(node);\n }\n });\n matches_1.add(spread);\n fragmentSelections.forEach(function (selection) {\n matches_1.add(selection);\n });\n }\n }\n });\n }\n return selectionsToResolveCache.get(definitionNode);\n }\n return collectByDefinition(mainDefinition);\n };\n return LocalState;\n}());\nexport { LocalState };\n//# sourceMappingURL=LocalState.js.map","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap, } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight, } from \"./networkStatus.js\";\n;\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, (destructiveMethodCounts.get(cache) + 1) % 1e15);\n return original.apply(this, arguments);\n };\n }\n}\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\nvar QueryInfo = (function () {\n function QueryInfo(queryManager, queryId) {\n if (queryId === void 0) { queryId = queryManager.generateQueryId(); }\n this.queryId = queryId;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.subscriptions = new Set();\n this.stopped = false;\n this.dirty = false;\n this.observableQuery = null;\n var cache = this.cache = queryManager.cache;\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n if (this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus,\n });\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n return this;\n };\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.dirty = false;\n };\n QueryInfo.prototype.getDiff = function (variables) {\n if (variables === void 0) { variables = this.variables; }\n var options = this.getDiffOptions(variables);\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n this.updateWatch(this.variables = variables);\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n var diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n };\n QueryInfo.prototype.updateLastDiff = function (diff, options) {\n this.lastDiff = diff ? {\n diff: diff,\n options: options || this.getDiffOptions(),\n } : void 0;\n };\n QueryInfo.prototype.getDiffOptions = function (variables) {\n var _a;\n if (variables === void 0) { variables = this.variables; }\n return {\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults,\n };\n };\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n var oldDiff = this.lastDiff && this.lastDiff.diff;\n this.updateLastDiff(diff);\n if (!this.dirty &&\n !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () { return _this.notify(); }, 0);\n }\n }\n };\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n if (oq === this.observableQuery)\n return;\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n this.observableQuery = oq;\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = function () {\n var diff = _this.getDiff();\n if (diff.fromOptimisticTransaction) {\n oq[\"observe\"]();\n }\n else {\n reobserveCacheFirst(oq);\n }\n });\n }\n else {\n delete this.oqListener;\n }\n };\n QueryInfo.prototype.notify = function () {\n var _this = this;\n cancelNotifyTimeout(this);\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) { return listener(_this); });\n }\n this.dirty = false;\n };\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n if (isNetworkRequestInFlight(this.networkStatus) &&\n this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n if (fetchPolicy !== \"cache-only\" &&\n fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n return true;\n };\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n this.reset();\n this.cancel();\n this.cancel = QueryInfo.prototype.cancel;\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n var oq = this.observableQuery;\n if (oq)\n oq.stopPolling();\n }\n };\n QueryInfo.prototype.cancel = function () { };\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n if (variables === void 0) { variables = this.variables; }\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), { watcher: this, callback: function (diff) { return _this.setDiff(diff); } });\n if (!this.lastWatch ||\n !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = watchOptions);\n }\n };\n QueryInfo.prototype.resetLastWrite = function () {\n this.lastWrite = void 0;\n };\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite &&\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data));\n };\n QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {\n var _this = this;\n var merger = new DeepMerger();\n var graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n this.reset();\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n var mergedData = mergeIncrementalData(this.getDiff().result, result);\n result.data = mergedData;\n }\n else if ('hasNext' in result && result.hasNext) {\n var diff = this.getDiff();\n result.data = merger.merge(diff.result, result.data);\n }\n this.graphQLErrors = graphQLErrors;\n if (options.fetchPolicy === 'no-cache') {\n this.updateLastDiff({ result: result.data, complete: true }, this.getDiffOptions(options.variables));\n }\n else if (cacheWriteBehavior !== 0) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data,\n variables: options.variables,\n overwrite: cacheWriteBehavior === 1,\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache),\n };\n }\n else {\n if (_this.lastDiff &&\n _this.lastDiff.diff.complete) {\n result.data = _this.lastDiff.diff.result;\n return;\n }\n }\n var diffOptions = _this.getDiffOptions(options.variables);\n var diff = cache.diff(diffOptions);\n if (!_this.stopped) {\n _this.updateWatch(options.variables);\n }\n _this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n }\n else {\n this.lastWrite = void 0;\n }\n }\n };\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n };\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n return error;\n };\n return QueryInfo;\n}());\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) { errorPolicy = \"none\"; }\n var ignoreErrors = errorPolicy === \"ignore\" ||\n errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n//# sourceMappingURL=QueryInfo.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { execute } from \"../link/core/index.js\";\nimport { isExecutionPatchIncrementalResult, isExecutionPatchResult, } from \"../utilities/common/incrementalResult.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, getGraphQLErrorsFromResult, removeConnectionDirectiveFromDocument, canUseWeakMap, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport { ApolloError, isApolloError, graphQLResultHasProtocolErrors } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { LocalState } from \"./LocalState.js\";\nimport { QueryInfo, shouldWriteResult, } from \"./QueryInfo.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../errors/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var cache = _a.cache, link = _a.link, defaultOptions = _a.defaultOptions, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, onBroadcast = _a.onBroadcast, _c = _a.ssrMode, ssrMode = _c === void 0 ? false : _c, _d = _a.clientAwareness, clientAwareness = _d === void 0 ? {} : _d, localState = _a.localState, assumeImmutableResults = _a.assumeImmutableResults;\n this.clientAwareness = {};\n this.queries = new Map();\n this.fetchCancelFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n this.inFlightLinkObservables = new Map();\n this.cache = cache;\n this.link = link;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache: cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n QueryManager.prototype.stop = function () {\n var _this = this;\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(__DEV__ ? new InvariantError('QueryManager stopped while query was in flight') : new InvariantError(14));\n };\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });\n this.fetchCancelFns.clear();\n };\n QueryManager.prototype.mutate = function (_a) {\n var _b, _c;\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueries = _a.updateQueries, _d = _a.refetchQueries, refetchQueries = _d === void 0 ? [] : _d, _e = _a.awaitRefetchQueries, awaitRefetchQueries = _e === void 0 ? false : _e, updateWithProxyFn = _a.update, onQueryUpdated = _a.onQueryUpdated, _f = _a.fetchPolicy, fetchPolicy = _f === void 0 ? ((_b = this.defaultOptions.mutate) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"network-only\" : _f, _g = _a.errorPolicy, errorPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.errorPolicy) || \"none\" : _g, keepRootFields = _a.keepRootFields, context = _a.context;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, _h, document, hasClientExports, mutationStoreValue, self;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n __DEV__ ? invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : invariant(mutation, 15);\n __DEV__ ? invariant(fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache', \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\") : invariant(fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache', 16);\n mutationId = this.generateMutationId();\n _h = this.transform(mutation), document = _h.document, hasClientExports = _h.hasClientExports;\n mutation = this.cache.transformForLink(document);\n variables = this.getVariables(mutation, variables);\n if (!hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n case 1:\n variables = (_j.sent());\n _j.label = 2;\n case 2:\n mutationStoreValue = this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null,\n });\n if (optimisticResponse) {\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n updateQueries: updateQueries,\n update: updateWithProxyFn,\n keepRootFields: keepRootFields,\n });\n }\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), { optimisticResponse: optimisticResponse }), variables, false), function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: getGraphQLErrorsFromResult(result),\n });\n }\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n var storeResult = __assign({}, result);\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n if (errorPolicy === 'ignore' &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n return self.markMutationResult({\n mutationId: mutationId,\n result: storeResult,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n update: updateWithProxyFn,\n updateQueries: updateQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n refetchQueries: refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated: onQueryUpdated,\n keepRootFields: keepRootFields,\n });\n }).subscribe({\n next: function (storeResult) {\n self.broadcastQueries();\n if (!('hasNext' in storeResult) || storeResult.hasNext === false) {\n resolve(storeResult);\n }\n },\n error: function (err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n self.broadcastQueries();\n reject(err instanceof ApolloError ? err : new ApolloError({\n networkError: err,\n }));\n },\n });\n })];\n }\n });\n });\n };\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n if (cache === void 0) { cache = this.cache; }\n var result = mutation.result;\n var cacheWrites = [];\n var skipCache = mutation.fetchPolicy === \"no-cache\";\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n if (!isExecutionPatchIncrementalResult(result)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n if (isExecutionPatchIncrementalResult(result) && isNonEmptyArray(result.incremental)) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n var mergedData = void 0;\n if (diff.result) {\n mergedData = mergeIncrementalData(diff.result, result);\n }\n if (typeof mergedData !== 'undefined') {\n result.data = mergedData;\n cacheWrites.push({\n result: mergedData,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n }\n var updateQueries_1 = mutation.updateQueries;\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n var updater = updateQueries_1[queryName];\n var _b = _this.queries.get(queryId), document = _b.document, variables = _b.variables;\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }), currentQueryResult = _c.result, complete = _c.complete;\n if (complete && currentQueryResult) {\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables,\n });\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n }\n });\n }\n }\n if (cacheWrites.length > 0 ||\n mutation.refetchQueries ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic) {\n var results_1 = [];\n this.refetchQueries({\n updateCache: function (cache) {\n if (!skipCache) {\n cacheWrites.forEach(function (write) { return cache.write(write); });\n }\n var update = mutation.update;\n var isFinalResult = !isExecutionPatchResult(result) ||\n (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n if (update) {\n if (!skipCache) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: _this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n if (diff.complete) {\n result = __assign(__assign({}, result), { data: diff.result });\n if ('incremental' in result) {\n delete result.incremental;\n }\n if ('hasNext' in result) {\n delete result.hasNext;\n }\n }\n }\n if (isFinalResult) {\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n }\n if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields: function (value, _a) {\n var fieldName = _a.fieldName, DELETE = _a.DELETE;\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n include: mutation.refetchQueries,\n optimistic: false,\n removeOptimistic: mutation.removeOptimistic,\n onQueryUpdated: mutation.onQueryUpdated || null,\n }).forEach(function (result) { return results_1.push(result); });\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n return Promise.all(results_1).then(function () { return result; });\n }\n }\n return Promise.resolve(result);\n };\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n var data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n return this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), { result: { data: data } }), cache);\n }\n catch (error) {\n __DEV__ && invariant.error(error);\n }\n }, mutation.mutationId);\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchQueryObservable(queryId, options, networkStatus).promise;\n };\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n };\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n if (!transformCache.has(document)) {\n var transformed = this.cache.transformDocument(document);\n var noConnection = removeConnectionDirectiveFromDocument(transformed);\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = noConnection && this.localState.serverQuery(noConnection);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed)),\n asQuery: __assign(__assign({}, transformed), { definitions: transformed.definitions.map(function (def) {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return __assign(__assign({}, def), { operation: \"query\" });\n }\n return def;\n }) })\n };\n var add = function (doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n return transformCache.get(document);\n };\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n QueryManager.prototype.watchQuery = function (options) {\n options = __assign(__assign({}, options), { variables: this.getVariables(options.query, options.variables) });\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var queryInfo = new QueryInfo(this);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options,\n });\n this.queries.set(observable.queryId, queryInfo);\n queryInfo.init({\n document: observable.query,\n observableQuery: observable,\n variables: observable.variables,\n });\n return observable;\n };\n QueryManager.prototype.query = function (options, queryId) {\n var _this = this;\n if (queryId === void 0) { queryId = this.generateQueryId(); }\n __DEV__ ? invariant(options.query, 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.') : invariant(options.query, 17);\n __DEV__ ? invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.') : invariant(options.query.kind === 'Document', 18);\n __DEV__ ? invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : invariant(!options.returnPartialData, 19);\n __DEV__ ? invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : invariant(!options.pollInterval, 20);\n return this.fetchQuery(queryId, options).finally(function () { return _this.stopQuery(queryId); });\n };\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo)\n queryInfo.stop();\n };\n QueryManager.prototype.clearStore = function (options) {\n if (options === void 0) { options = {\n discardWatches: true,\n }; }\n this.cancelPendingFetches(__DEV__ ? new InvariantError('Store reset while query was in flight (not completed in link chain)') : new InvariantError(21));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n queryInfo.networkStatus = NetworkStatus.loading;\n }\n else {\n queryInfo.stop();\n }\n });\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n return this.cache.reset(options);\n };\n QueryManager.prototype.getObservableQueries = function (include) {\n var _this = this;\n if (include === void 0) { include = \"active\"; }\n var queries = new Map();\n var queryNamesAndDocs = new Map();\n var legacyQueryOptions = new Set();\n if (Array.isArray(include)) {\n include.forEach(function (desc) {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n }\n else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(_this.transform(desc).document, false);\n }\n else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n this.queries.forEach(function (_a, queryId) {\n var oq = _a.observableQuery, document = _a.document;\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n var queryName = oq.queryName, fetchPolicy = oq.options.fetchPolicy;\n if (fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())) {\n return;\n }\n if (include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))) {\n queries.set(queryId, oq);\n if (queryName)\n queryNamesAndDocs.set(queryName, true);\n if (document)\n queryNamesAndDocs.set(document, true);\n }\n }\n });\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach(function (options) {\n var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n var queryInfo = _this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n var oq = new ObservableQuery({\n queryManager: _this,\n queryInfo: queryInfo,\n options: __assign(__assign({}, options), { fetchPolicy: \"network-only\" }),\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n if (!included) {\n __DEV__ && invariant.warn(\"Unknown query \".concat(typeof nameOrDoc === \"string\" ? \"named \" : \"\").concat(JSON.stringify(nameOrDoc, null, 2), \" requested in refetchQueries options.include array\"));\n }\n });\n }\n return queries;\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n if (includeStandby === void 0) { includeStandby = false; }\n var observableQueryPromises = [];\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" &&\n fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.getQuery(queryId).setDiff(null);\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n var query = _a.query, fetchPolicy = _a.fetchPolicy, errorPolicy = _a.errorPolicy, variables = _a.variables, _b = _a.context, context = _b === void 0 ? {} : _b;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n var makeObservable = function (variables) {\n return _this.getObservableFromLink(query, context, variables).map(function (result) {\n if (fetchPolicy !== 'no-cache') {\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n _this.broadcastQueries();\n }\n var hasErrors = graphQLResultHasError(result);\n var hasProtocolErrors = graphQLResultHasProtocolErrors(result);\n if (hasErrors || hasProtocolErrors) {\n var errors = {};\n if (hasErrors) {\n errors.graphQLErrors = result.errors;\n }\n if (hasProtocolErrors) {\n errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];\n }\n throw new ApolloError(errors);\n }\n return result;\n });\n };\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) { return sub = observable.subscribe(observer); }, observer.error);\n return function () { return sub && sub.unsubscribe(); };\n });\n }\n return makeObservable(variables);\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n };\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast)\n this.onBroadcast();\n this.queries.forEach(function (info) { return info.notify(); });\n };\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n var _a;\n if (deduplication === void 0) { deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication; }\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n if (serverQuery) {\n var _b = this, inFlightLinkObservables_1 = _b.inFlightLinkObservables, link = _b.link;\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), { forceFetch: !deduplication })),\n };\n context = operation.context;\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = canonicalStringify(variables);\n observable = byVariables_1.get(varJson_1);\n if (!observable) {\n var concast = new Concast([\n execute(link, operation)\n ]);\n byVariables_1.set(varJson_1, observable = concast);\n concast.beforeNext(function () {\n if (byVariables_1.delete(varJson_1) &&\n byVariables_1.size < 1) {\n inFlightLinkObservables_1.delete(serverQuery);\n }\n });\n }\n }\n else {\n observable = new Concast([\n execute(link, operation)\n ]);\n }\n }\n else {\n observable = new Concast([\n Observable.of({ data: {} })\n ]);\n context = this.prepareContext(context);\n }\n var clientQuery = this.transform(query).clientQuery;\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables,\n });\n });\n }\n return observable;\n };\n QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n var requestId = queryInfo.lastRequestId = this.generateRequestId();\n var linkDocument = this.cache.transformForLink(this.transform(queryInfo.document).document);\n return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {\n var graphQLErrors = getGraphQLErrorsFromResult(result);\n var hasErrors = graphQLErrors.length > 0;\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: graphQLErrors,\n }));\n }\n queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError: networkError });\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n throw error;\n });\n };\n QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {\n return this.fetchConcastWithInfo(queryId, options, networkStatus).concast;\n };\n QueryManager.prototype.fetchConcastWithInfo = function (queryId, options, networkStatus) {\n var _this = this;\n if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; }\n var query = this.transform(options.query).document;\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var defaults = this.defaultOptions.watchQuery;\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? defaults && defaults.fetchPolicy || \"cache-first\" : _a, _b = options.errorPolicy, errorPolicy = _b === void 0 ? defaults && defaults.errorPolicy || \"none\" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e;\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context,\n });\n var fromVariables = function (variables) {\n normalized.variables = variables;\n var sourcesWithInfo = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n if (normalized.fetchPolicy !== \"standby\" &&\n sourcesWithInfo.sources.length > 0 &&\n queryInfo.observableQuery) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n return sourcesWithInfo;\n };\n var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };\n this.fetchCancelFns.set(queryId, function (reason) {\n cleanupCancelFn();\n setTimeout(function () { return concast.cancel(reason); });\n });\n var concast, containsDataFromLink;\n if (this.transform(normalized.query).hasClientExports) {\n concast = new Concast(this.localState\n .addExportedVariables(normalized.query, normalized.variables, normalized.context)\n .then(fromVariables).then(function (sourcesWithInfo) { return sourcesWithInfo.sources; }));\n containsDataFromLink = true;\n }\n else {\n var sourcesWithInfo = fromVariables(normalized.variables);\n containsDataFromLink = sourcesWithInfo.fromLink;\n concast = new Concast(sourcesWithInfo.sources);\n }\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n return {\n concast: concast,\n fromLink: containsDataFromLink,\n };\n };\n QueryManager.prototype.refetchQueries = function (_a) {\n var _this = this;\n var updateCache = _a.updateCache, include = _a.include, _b = _a.optimistic, optimistic = _b === void 0 ? false : _b, _c = _a.removeOptimistic, removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c, onQueryUpdated = _a.onQueryUpdated;\n var includedQueriesById = new Map();\n if (include) {\n this.getObservableQueries(include).forEach(function (oq, queryId) {\n includedQueriesById.set(queryId, {\n oq: oq,\n lastDiff: _this.getQuery(queryId).getDiff(),\n });\n });\n }\n var results = new Map;\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n optimistic: optimistic && removeOptimistic || false,\n removeOptimistic: removeOptimistic,\n onWatchUpdated: function (watch, diff, lastDiff) {\n var oq = watch.watcher instanceof QueryInfo &&\n watch.watcher.observableQuery;\n if (oq) {\n if (onQueryUpdated) {\n includedQueriesById.delete(oq.queryId);\n var result = onQueryUpdated(oq, diff, lastDiff);\n if (result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n return result;\n }\n if (onQueryUpdated !== null) {\n includedQueriesById.set(oq.queryId, { oq: oq, lastDiff: lastDiff, diff: diff });\n }\n }\n },\n });\n }\n if (includedQueriesById.size) {\n includedQueriesById.forEach(function (_a, queryId) {\n var oq = _a.oq, lastDiff = _a.lastDiff, diff = _a.diff;\n var result;\n if (onQueryUpdated) {\n if (!diff) {\n var info = oq[\"queryInfo\"];\n info.reset();\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n _this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n if (removeOptimistic) {\n this.cache.removeOptimistic(removeOptimistic);\n }\n return results;\n };\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {\n var _this = this;\n var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n var oldNetworkStatus = queryInfo.networkStatus;\n queryInfo.init({\n document: this.transform(query).document,\n variables: variables,\n networkStatus: networkStatus,\n });\n var readCache = function () { return queryInfo.getDiff(variables); };\n var resultsFromCache = function (diff, networkStatus) {\n if (networkStatus === void 0) { networkStatus = queryInfo.networkStatus || NetworkStatus.loading; }\n var data = diff.result;\n if (__DEV__ &&\n !returnPartialData &&\n !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n var fromData = function (data) { return Observable.of(__assign({ data: data, loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus }, (diff.complete ? null : { partial: true }))); };\n if (data && _this.transform(query).hasForcedResolvers) {\n return _this.localState.runResolvers({\n document: query,\n remoteResult: { data: data },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true,\n }).then(function (resolved) { return fromData(resolved.data || void 0); });\n }\n if (errorPolicy === 'none' &&\n networkStatus === NetworkStatus.refetch &&\n Array.isArray(diff.missing)) {\n return fromData(void 0);\n }\n return fromData(data);\n };\n var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 :\n (networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\") ? 1\n : 2;\n var resultsFromLink = function () { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n }); };\n var shouldNotify = notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n switch (fetchPolicy) {\n default:\n case \"cache-first\": {\n var diff = readCache();\n if (diff.complete) {\n return { fromLink: false, sources: [resultsFromCache(diff, queryInfo.markReady())] };\n }\n if (returnPartialData || shouldNotify) {\n return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n case \"cache-and-network\": {\n var diff = readCache();\n if (diff.complete || returnPartialData || shouldNotify) {\n return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n case \"cache-only\":\n return { fromLink: false, sources: [resultsFromCache(readCache(), queryInfo.markReady())] };\n case \"network-only\":\n if (shouldNotify) {\n return { fromLink: true, sources: [resultsFromCache(readCache()), resultsFromLink()] };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n case \"no-cache\":\n if (shouldNotify) {\n return {\n fromLink: true,\n sources: [\n resultsFromCache(queryInfo.getDiff()),\n resultsFromLink(),\n ],\n };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n case \"standby\":\n return { fromLink: false, sources: [] };\n }\n };\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId);\n };\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) { context = {}; }\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), { clientAwareness: this.clientAwareness });\n };\n return QueryManager;\n}());\nexport { QueryManager };\n//# sourceMappingURL=QueryManager.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState, } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\nimport { mergeOptions } from \"../utilities/index.js\";\nexport { mergeOptions };\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n var _this = this;\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.connectToDevTools, connectToDevTools = _c === void 0 ? typeof window === 'object' &&\n !window.__APOLLO_CLIENT__ &&\n __DEV__ : _c, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d, defaultOptions = options.defaultOptions, _e = options.assumeImmutableResults, assumeImmutableResults = _e === void 0 ? false : _e, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version;\n var link = options.link;\n if (!link) {\n link = uri\n ? new HttpLink({ uri: uri, credentials: credentials, headers: headers })\n : ApolloLink.empty();\n }\n if (!cache) {\n throw __DEV__ ? new InvariantError(\"To initialize Apollo Client, you must specify a 'cache' property \" +\n \"in the options object. \\n\" +\n \"For more information, please visit: https://go.apollo.dev/c/docs\") : new InvariantError(9);\n }\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n if (connectToDevTools && typeof window === 'object') {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && connectToDevTools && __DEV__) {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self &&\n !window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" +\n \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n }\n else if (ua.indexOf(\"Firefox/\") > -1) {\n url = \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n if (url) {\n __DEV__ && invariant.log(\"Download the Apollo DevTools for a better development \" +\n \"experience: \" + url);\n }\n }\n }\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher,\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: connectToDevTools ? function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {},\n },\n dataWithOptimisticResults: _this.cache.extract(true),\n });\n }\n } : void 0,\n });\n }\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n if (this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n __DEV__ ? invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.') : invariant(options.fetchPolicy !== 'cache-and-network', 10);\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readQuery(options, optimistic);\n };\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readFragment(options, optimistic);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n var ref = this.cache.writeQuery(options);\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n return ref;\n };\n ApolloClient.prototype.writeFragment = function (options) {\n var ref = this.cache.writeFragment(options);\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n return ref;\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore({\n discardWatches: false,\n }); })\n .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n .then(function () { return _this.reFetchObservableQueries(); });\n };\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore({\n discardWatches: true,\n }); })\n .then(function () { return Promise.all(_this.clearStoreCallbacks.map(function (fn) { return fn(); })); });\n };\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n ApolloClient.prototype.refetchQueries = function (options) {\n var map = this.queryManager.refetchQueries(options);\n var queries = [];\n var results = [];\n map.forEach(function (result, obsQuery) {\n queries.push(obsQuery);\n results.push(result);\n });\n var result = Promise.all(results);\n result.queries = queries;\n result.results = results;\n result.catch(function (error) {\n __DEV__ && invariant.debug(\"In client.refetchQueries, Promise.all promise rejected with error \".concat(error));\n });\n return result;\n };\n ApolloClient.prototype.getObservableQueries = function (include) {\n if (include === void 0) { include = \"active\"; }\n return this.queryManager.getObservableQueries(include);\n };\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n return ApolloClient;\n}());\nexport { ApolloClient };\n//# sourceMappingURL=ApolloClient.js.map","import * as React from 'react';\nimport { canUseSymbol } from \"../../utilities/index.js\";\nvar contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\nexport { getApolloContext as resetApolloContext };\n//# sourceMappingURL=ApolloContext.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n return (React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) { context = {}; }\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client: client });\n }\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 29);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n }));\n};\n//# sourceMappingURL=ApolloProvider.js.map","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a = props.gapMode, gapMode = _a === void 0 ? 'margin' : _a;\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","function createPolymorphicComponent(component) {\n return component;\n}\n\nexport { createPolymorphicComponent };\n//# sourceMappingURL=create-polymorphic-component.js.map\n","function findElementAncestor(element, selector) {\n let _element = element;\n while ((_element = _element.parentElement) && !_element.matches(selector))\n ;\n return _element;\n}\n\nexport { findElementAncestor };\n//# sourceMappingURL=find-element-ancestor.js.map\n","import { findElementAncestor } from '../find-element-ancestor/find-element-ancestor.js';\n\nfunction getPreviousIndex(current, elements, loop) {\n for (let i = current - 1; i >= 0; i -= 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n if (loop) {\n for (let i = elements.length - 1; i > -1; i -= 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n }\n return current;\n}\nfunction getNextIndex(current, elements, loop) {\n for (let i = current + 1; i < elements.length; i += 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n if (loop) {\n for (let i = 0; i < elements.length; i += 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n }\n return current;\n}\nfunction onSameLevel(target, sibling, parentSelector) {\n return findElementAncestor(target, parentSelector) === findElementAncestor(sibling, parentSelector);\n}\nfunction createScopedKeydownHandler({\n parentSelector,\n siblingSelector,\n onKeyDown,\n loop = true,\n activateOnFocus = false,\n dir = \"rtl\",\n orientation\n}) {\n return (event) => {\n var _a;\n onKeyDown == null ? void 0 : onKeyDown(event);\n const elements = Array.from(((_a = findElementAncestor(event.currentTarget, parentSelector)) == null ? void 0 : _a.querySelectorAll(siblingSelector)) || []).filter((node) => onSameLevel(event.currentTarget, node, parentSelector));\n const current = elements.findIndex((el) => event.currentTarget === el);\n const _nextIndex = getNextIndex(current, elements, loop);\n const _previousIndex = getPreviousIndex(current, elements, loop);\n const nextIndex = dir === \"rtl\" ? _previousIndex : _nextIndex;\n const previousIndex = dir === \"rtl\" ? _nextIndex : _previousIndex;\n switch (event.key) {\n case \"ArrowRight\": {\n if (orientation === \"horizontal\") {\n event.stopPropagation();\n event.preventDefault();\n elements[nextIndex].focus();\n activateOnFocus && elements[nextIndex].click();\n }\n break;\n }\n case \"ArrowLeft\": {\n if (orientation === \"horizontal\") {\n event.stopPropagation();\n event.preventDefault();\n elements[previousIndex].focus();\n activateOnFocus && elements[previousIndex].click();\n }\n break;\n }\n case \"ArrowUp\": {\n if (orientation === \"vertical\") {\n event.stopPropagation();\n event.preventDefault();\n elements[_previousIndex].focus();\n activateOnFocus && elements[_previousIndex].click();\n }\n break;\n }\n case \"ArrowDown\": {\n if (orientation === \"vertical\") {\n event.stopPropagation();\n event.preventDefault();\n elements[_nextIndex].focus();\n activateOnFocus && elements[_nextIndex].click();\n }\n break;\n }\n case \"Home\": {\n event.stopPropagation();\n event.preventDefault();\n !elements[0].disabled && elements[0].focus();\n break;\n }\n case \"End\": {\n event.stopPropagation();\n event.preventDefault();\n const last = elements.length - 1;\n !elements[last].disabled && elements[last].focus();\n break;\n }\n }\n };\n}\n\nexport { createScopedKeydownHandler };\n//# sourceMappingURL=create-scoped-keydown-handler.js.map\n","import { findElementAncestor } from '../find-element-ancestor/find-element-ancestor.js';\n\nfunction getContextItemIndex(elementSelector, parentSelector, node) {\n var _a;\n if (!node) {\n return null;\n }\n return Array.from(((_a = findElementAncestor(node, parentSelector)) == null ? void 0 : _a.querySelectorAll(elementSelector)) || []).findIndex((element) => element === node);\n}\n\nexport { getContextItemIndex };\n//# sourceMappingURL=get-context-item-index.js.map\n","import React, { createContext, useContext } from 'react';\n\nfunction createSafeContext(errorMessage) {\n const Context = createContext(null);\n const useSafeContext = () => {\n const ctx = useContext(Context);\n if (ctx === null) {\n throw new Error(errorMessage);\n }\n return ctx;\n };\n const Provider = ({ children, value }) => /* @__PURE__ */ React.createElement(Context.Provider, {\n value\n }, children);\n return [Provider, useSafeContext];\n}\n\nexport { createSafeContext };\n//# sourceMappingURL=create-safe-context.js.map\n","function packSx(sx) {\n return Array.isArray(sx) ? sx : [sx];\n}\n\nexport { packSx };\n//# sourceMappingURL=pack-sx.js.map\n","const noop = () => {\n};\n\nexport { noop };\n//# sourceMappingURL=noop.js.map\n","import { noop } from '../noop/noop.js';\n\nfunction closeOnEscape(callback, options = { active: true }) {\n if (typeof callback !== \"function\" || !options.active) {\n return options.onKeyDown || noop;\n }\n return (event) => {\n var _a;\n if (event.key === \"Escape\") {\n callback(event);\n (_a = options.onTrigger) == null ? void 0 : _a.call(options);\n }\n };\n}\n\nexport { closeOnEscape };\n//# sourceMappingURL=close-on-escape.js.map\n","function createEventHandler(parentEventHandler, eventHandler) {\n return (event) => {\n parentEventHandler == null ? void 0 : parentEventHandler(event);\n eventHandler == null ? void 0 : eventHandler(event);\n };\n}\n\nexport { createEventHandler };\n//# sourceMappingURL=create-event-handler.js.map\n","import { useState } from 'react';\n\nfunction useHovered() {\n const [hovered, setHovered] = useState(-1);\n const resetHovered = () => setHovered(-1);\n return [hovered, { setHovered, resetHovered }];\n}\n\nexport { useHovered };\n//# sourceMappingURL=use-hovered.js.map\n","import { useLayoutEffect, useEffect } from 'react';\n\nfunction dispatchEvent(type, detail) {\n window.dispatchEvent(new CustomEvent(type, { detail }));\n}\nconst useIsomorphicEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\nfunction createUseExternalEvents(prefix) {\n function _useExternalEvents(events) {\n const handlers = Object.keys(events).reduce((acc, eventKey) => {\n acc[`${prefix}:${eventKey}`] = (event) => events[eventKey](event.detail);\n return acc;\n }, {});\n useIsomorphicEffect(() => {\n Object.keys(handlers).forEach((eventKey) => {\n window.removeEventListener(eventKey, handlers[eventKey]);\n window.addEventListener(eventKey, handlers[eventKey]);\n });\n return () => Object.keys(handlers).forEach((eventKey) => {\n window.removeEventListener(eventKey, handlers[eventKey]);\n });\n }, [handlers]);\n }\n function createEvent(event) {\n return (...payload) => dispatchEvent(`${prefix}:${String(event)}`, payload[0]);\n }\n return [_useExternalEvents, createEvent];\n}\n\nexport { createUseExternalEvents };\n//# sourceMappingURL=create-use-external-events.js.map\n","import React from 'react';\n\nfunction isElement(value) {\n if (Array.isArray(value) || value === null) {\n return false;\n }\n if (typeof value === \"object\") {\n if (value.type === React.Fragment) {\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport { isElement };\n//# sourceMappingURL=is-element.js.map\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","const DEFAULT_COLORS = {\n dark: [\n \"#C1C2C5\",\n \"#A6A7AB\",\n \"#909296\",\n \"#5c5f66\",\n \"#373A40\",\n \"#2C2E33\",\n \"#25262b\",\n \"#1A1B1E\",\n \"#141517\",\n \"#101113\"\n ],\n gray: [\n \"#f8f9fa\",\n \"#f1f3f5\",\n \"#e9ecef\",\n \"#dee2e6\",\n \"#ced4da\",\n \"#adb5bd\",\n \"#868e96\",\n \"#495057\",\n \"#343a40\",\n \"#212529\"\n ],\n red: [\n \"#fff5f5\",\n \"#ffe3e3\",\n \"#ffc9c9\",\n \"#ffa8a8\",\n \"#ff8787\",\n \"#ff6b6b\",\n \"#fa5252\",\n \"#f03e3e\",\n \"#e03131\",\n \"#c92a2a\"\n ],\n pink: [\n \"#fff0f6\",\n \"#ffdeeb\",\n \"#fcc2d7\",\n \"#faa2c1\",\n \"#f783ac\",\n \"#f06595\",\n \"#e64980\",\n \"#d6336c\",\n \"#c2255c\",\n \"#a61e4d\"\n ],\n grape: [\n \"#f8f0fc\",\n \"#f3d9fa\",\n \"#eebefa\",\n \"#e599f7\",\n \"#da77f2\",\n \"#cc5de8\",\n \"#be4bdb\",\n \"#ae3ec9\",\n \"#9c36b5\",\n \"#862e9c\"\n ],\n violet: [\n \"#f3f0ff\",\n \"#e5dbff\",\n \"#d0bfff\",\n \"#b197fc\",\n \"#9775fa\",\n \"#845ef7\",\n \"#7950f2\",\n \"#7048e8\",\n \"#6741d9\",\n \"#5f3dc4\"\n ],\n indigo: [\n \"#edf2ff\",\n \"#dbe4ff\",\n \"#bac8ff\",\n \"#91a7ff\",\n \"#748ffc\",\n \"#5c7cfa\",\n \"#4c6ef5\",\n \"#4263eb\",\n \"#3b5bdb\",\n \"#364fc7\"\n ],\n blue: [\n \"#e7f5ff\",\n \"#d0ebff\",\n \"#a5d8ff\",\n \"#74c0fc\",\n \"#4dabf7\",\n \"#339af0\",\n \"#228be6\",\n \"#1c7ed6\",\n \"#1971c2\",\n \"#1864ab\"\n ],\n cyan: [\n \"#e3fafc\",\n \"#c5f6fa\",\n \"#99e9f2\",\n \"#66d9e8\",\n \"#3bc9db\",\n \"#22b8cf\",\n \"#15aabf\",\n \"#1098ad\",\n \"#0c8599\",\n \"#0b7285\"\n ],\n teal: [\n \"#e6fcf5\",\n \"#c3fae8\",\n \"#96f2d7\",\n \"#63e6be\",\n \"#38d9a9\",\n \"#20c997\",\n \"#12b886\",\n \"#0ca678\",\n \"#099268\",\n \"#087f5b\"\n ],\n green: [\n \"#ebfbee\",\n \"#d3f9d8\",\n \"#b2f2bb\",\n \"#8ce99a\",\n \"#69db7c\",\n \"#51cf66\",\n \"#40c057\",\n \"#37b24d\",\n \"#2f9e44\",\n \"#2b8a3e\"\n ],\n lime: [\n \"#f4fce3\",\n \"#e9fac8\",\n \"#d8f5a2\",\n \"#c0eb75\",\n \"#a9e34b\",\n \"#94d82d\",\n \"#82c91e\",\n \"#74b816\",\n \"#66a80f\",\n \"#5c940d\"\n ],\n yellow: [\n \"#fff9db\",\n \"#fff3bf\",\n \"#ffec99\",\n \"#ffe066\",\n \"#ffd43b\",\n \"#fcc419\",\n \"#fab005\",\n \"#f59f00\",\n \"#f08c00\",\n \"#e67700\"\n ],\n orange: [\n \"#fff4e6\",\n \"#ffe8cc\",\n \"#ffd8a8\",\n \"#ffc078\",\n \"#ffa94d\",\n \"#ff922b\",\n \"#fd7e14\",\n \"#f76707\",\n \"#e8590c\",\n \"#d9480f\"\n ]\n};\n\nexport { DEFAULT_COLORS };\n//# sourceMappingURL=default-colors.js.map\n","function fontStyles(theme) {\n return () => ({ fontFamily: theme.fontFamily || \"sans-serif\" });\n}\n\nexport { fontStyles };\n//# sourceMappingURL=font-styles.js.map\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction focusStyles(theme) {\n return (selector) => ({\n WebkitTapHighlightColor: \"transparent\",\n [selector || \"&:focus\"]: __spreadValues({}, theme.focusRing === \"always\" || theme.focusRing === \"auto\" ? theme.focusRingStyles.styles(theme) : theme.focusRingStyles.resetStyles(theme)),\n [selector ? selector.replace(\":focus\", \":focus:not(:focus-visible)\") : \"&:focus:not(:focus-visible)\"]: __spreadValues({}, theme.focusRing === \"auto\" || theme.focusRing === \"never\" ? theme.focusRingStyles.resetStyles(theme) : null)\n });\n}\n\nexport { focusStyles };\n//# sourceMappingURL=focus-styles.js.map\n","function primaryShade(theme) {\n return (colorScheme) => {\n if (typeof theme.primaryShade === \"number\") {\n return theme.primaryShade;\n }\n return theme.primaryShade[colorScheme || theme.colorScheme];\n };\n}\n\nexport { primaryShade };\n//# sourceMappingURL=primary-shade.js.map\n","import { primaryShade } from '../primary-shade/primary-shade.js';\n\nfunction themeColor(theme) {\n const getPrimaryShade = primaryShade(theme);\n return (color, shade, primaryFallback = true, useSplittedShade = true) => {\n if (typeof color === \"string\" && color.includes(\".\")) {\n const [splitterColor, _splittedShade] = color.split(\".\");\n const splittedShade = parseInt(_splittedShade, 10);\n if (splitterColor in theme.colors && splittedShade >= 0 && splittedShade < 10) {\n return theme.colors[splitterColor][typeof shade === \"number\" && !useSplittedShade ? shade : splittedShade];\n }\n }\n const _shade = typeof shade === \"number\" ? shade : getPrimaryShade();\n return color in theme.colors ? theme.colors[color][_shade] : primaryFallback ? theme.colors[theme.primaryColor][_shade] : color;\n };\n}\n\nexport { themeColor };\n//# sourceMappingURL=theme-color.js.map\n","function getGradientColorStops(colors) {\n let stops = \"\";\n for (let i = 1; i < colors.length - 1; i += 1) {\n stops += `${colors[i]} ${i / (colors.length - 1) * 100}%, `;\n }\n return `${colors[0]} 0%, ${stops}${colors[colors.length - 1]} 100%`;\n}\n\nexport { getGradientColorStops };\n//# sourceMappingURL=get-gradient-color-stops.js.map\n","import { themeColor } from '../theme-color/theme-color.js';\nimport { primaryShade } from '../primary-shade/primary-shade.js';\nimport { getGradientColorStops } from './get-gradient-color-stops/get-gradient-color-stops.js';\n\nfunction linearGradient(deg, ...colors) {\n return `linear-gradient(${deg}deg, ${getGradientColorStops(colors)})`;\n}\nfunction radialGradient(...colors) {\n return `radial-gradient(circle, ${getGradientColorStops(colors)})`;\n}\nfunction gradient(theme) {\n const getThemeColor = themeColor(theme);\n const getPrimaryShade = primaryShade(theme);\n return (payload) => {\n const merged = {\n from: (payload == null ? void 0 : payload.from) || theme.defaultGradient.from,\n to: (payload == null ? void 0 : payload.to) || theme.defaultGradient.to,\n deg: (payload == null ? void 0 : payload.deg) || theme.defaultGradient.deg\n };\n return `linear-gradient(${merged.deg}deg, ${getThemeColor(merged.from, getPrimaryShade(), false)} 0%, ${getThemeColor(merged.to, getPrimaryShade(), false)} 100%)`;\n };\n}\n\nexport { gradient, linearGradient, radialGradient };\n//# sourceMappingURL=gradient.js.map\n","function createConverter(units) {\n return (px) => {\n if (typeof px === \"number\") {\n return `${px / 16}${units}`;\n }\n if (typeof px === \"string\") {\n const replaced = px.replace(\"px\", \"\");\n if (!Number.isNaN(Number(replaced))) {\n return `${Number(replaced) / 16}${units}`;\n }\n }\n return px;\n };\n}\nconst rem = createConverter(\"rem\");\nconst em = createConverter(\"em\");\n\nexport { em, rem };\n//# sourceMappingURL=rem.js.map\n","import { em, rem } from '../rem/rem.js';\n\nfunction getSize({\n size,\n sizes,\n units\n}) {\n if (size in sizes) {\n return sizes[size];\n }\n if (typeof size === \"number\") {\n return units === \"em\" ? em(size) : rem(size);\n }\n return size || sizes.md;\n}\n\nexport { getSize };\n//# sourceMappingURL=get-size.js.map\n","import { em } from '../../../utils/rem/rem.js';\nimport { getSize } from '../../../utils/get-size/get-size.js';\n\nfunction getBreakpointValue(value) {\n if (typeof value === \"number\") {\n return value;\n }\n if (typeof value === \"string\" && value.includes(\"rem\")) {\n return Number(value.replace(\"rem\", \"\")) * 16;\n }\n if (typeof value === \"string\" && value.includes(\"em\")) {\n return Number(value.replace(\"em\", \"\")) * 16;\n }\n return Number(value);\n}\nfunction largerThan(theme) {\n return (breakpoint) => `@media (min-width: ${em(getBreakpointValue(getSize({ size: breakpoint, sizes: theme.breakpoints })))})`;\n}\nfunction smallerThan(theme) {\n return (breakpoint) => `@media (max-width: ${em(getBreakpointValue(getSize({ size: breakpoint, sizes: theme.breakpoints })) - 1)})`;\n}\n\nexport { getBreakpointValue, largerThan, smallerThan };\n//# sourceMappingURL=breakpoints.js.map\n","function isHexColor(hex) {\n const HEX_REGEXP = /^#?([0-9A-F]{3}){1,2}$/i;\n return HEX_REGEXP.test(hex);\n}\nfunction hexToRgba(color) {\n let hexString = color.replace(\"#\", \"\");\n if (hexString.length === 3) {\n const shorthandHex = hexString.split(\"\");\n hexString = [\n shorthandHex[0],\n shorthandHex[0],\n shorthandHex[1],\n shorthandHex[1],\n shorthandHex[2],\n shorthandHex[2]\n ].join(\"\");\n }\n const parsed = parseInt(hexString, 16);\n const r = parsed >> 16 & 255;\n const g = parsed >> 8 & 255;\n const b = parsed & 255;\n return {\n r,\n g,\n b,\n a: 1\n };\n}\nfunction rgbStringToRgba(color) {\n const [r, g, b, a] = color.replace(/[^0-9,.]/g, \"\").split(\",\").map(Number);\n return { r, g, b, a: a || 1 };\n}\nfunction toRgba(color) {\n if (isHexColor(color)) {\n return hexToRgba(color);\n }\n if (color.startsWith(\"rgb\")) {\n return rgbStringToRgba(color);\n }\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n };\n}\n\nexport { toRgba };\n//# sourceMappingURL=to-rgba.js.map\n","import { toRgba } from '../../../utils/to-rgba/to-rgba.js';\n\nfunction rgba(color, alpha) {\n if (typeof color !== \"string\" || alpha > 1 || alpha < 0) {\n return \"rgba(0, 0, 0, 1)\";\n }\n if (color.startsWith(\"var(--\")) {\n return color;\n }\n const { r, g, b } = toRgba(color);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\nexport { rgba };\n//# sourceMappingURL=rgba.js.map\n","import { rem } from '../../../utils/rem/rem.js';\n\nfunction cover(offset = 0) {\n return {\n position: \"absolute\",\n top: rem(offset),\n right: rem(offset),\n left: rem(offset),\n bottom: rem(offset)\n };\n}\n\nexport { cover };\n//# sourceMappingURL=cover.js.map\n","import { toRgba } from '../../../utils/to-rgba/to-rgba.js';\n\nfunction darken(color, alpha) {\n if (typeof color === \"string\" && color.startsWith(\"var(--\")) {\n return color;\n }\n const { r, g, b, a } = toRgba(color);\n const f = 1 - alpha;\n const dark = (input) => Math.round(input * f);\n return `rgba(${dark(r)}, ${dark(g)}, ${dark(b)}, ${a})`;\n}\n\nexport { darken };\n//# sourceMappingURL=darken.js.map\n","import { toRgba } from '../../../utils/to-rgba/to-rgba.js';\n\nfunction lighten(color, alpha) {\n if (typeof color === \"string\" && color.startsWith(\"var(--\")) {\n return color;\n }\n const { r, g, b, a } = toRgba(color);\n const light = (input) => Math.round(input + (255 - input) * alpha);\n return `rgba(${light(r)}, ${light(g)}, ${light(b)}, ${a})`;\n}\n\nexport { lighten };\n//# sourceMappingURL=lighten.js.map\n","import { rem } from '../../../utils/rem/rem.js';\n\nfunction radius(theme) {\n return (size) => {\n if (typeof size === \"number\") {\n return rem(size);\n }\n const defaultRadius = typeof theme.defaultRadius === \"number\" ? theme.defaultRadius : theme.radius[theme.defaultRadius] || theme.defaultRadius;\n return theme.radius[size] || size || defaultRadius;\n };\n}\n\nexport { radius };\n//# sourceMappingURL=radius.js.map\n","import { rgba } from '../rgba/rgba.js';\nimport { themeColor } from '../theme-color/theme-color.js';\nimport { primaryShade } from '../primary-shade/primary-shade.js';\nimport { gradient } from '../gradient/gradient.js';\n\nfunction getColorIndexInfo(color, theme) {\n if (typeof color === \"string\" && color.includes(\".\")) {\n const [splittedColor, _splittedShade] = color.split(\".\");\n const splittedShade = parseInt(_splittedShade, 10);\n if (splittedColor in theme.colors && splittedShade >= 0 && splittedShade < 10) {\n return { isSplittedColor: true, key: splittedColor, shade: splittedShade };\n }\n }\n return { isSplittedColor: false };\n}\nfunction variant(theme) {\n const getThemeColor = themeColor(theme);\n const getPrimaryShade = primaryShade(theme);\n const getGradient = gradient(theme);\n return ({ variant: variant2, color, gradient: gradient2, primaryFallback }) => {\n const colorInfo = getColorIndexInfo(color, theme);\n switch (variant2) {\n case \"light\": {\n return {\n border: \"transparent\",\n background: rgba(getThemeColor(color, theme.colorScheme === \"dark\" ? 8 : 0, primaryFallback, false), theme.colorScheme === \"dark\" ? 0.2 : 1),\n color: color === \"dark\" ? theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.dark[9] : getThemeColor(color, theme.colorScheme === \"dark\" ? 2 : getPrimaryShade(\"light\")),\n hover: rgba(getThemeColor(color, theme.colorScheme === \"dark\" ? 7 : 1, primaryFallback, false), theme.colorScheme === \"dark\" ? 0.25 : 0.65)\n };\n }\n case \"subtle\": {\n return {\n border: \"transparent\",\n background: \"transparent\",\n color: color === \"dark\" ? theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.dark[9] : getThemeColor(color, theme.colorScheme === \"dark\" ? 2 : getPrimaryShade(\"light\")),\n hover: rgba(getThemeColor(color, theme.colorScheme === \"dark\" ? 8 : 0, primaryFallback, false), theme.colorScheme === \"dark\" ? 0.2 : 1)\n };\n }\n case \"outline\": {\n return {\n border: getThemeColor(color, theme.colorScheme === \"dark\" ? 5 : getPrimaryShade(\"light\")),\n background: \"transparent\",\n color: getThemeColor(color, theme.colorScheme === \"dark\" ? 5 : getPrimaryShade(\"light\")),\n hover: theme.colorScheme === \"dark\" ? rgba(getThemeColor(color, 5, primaryFallback, false), 0.05) : rgba(getThemeColor(color, 0, primaryFallback, false), 0.35)\n };\n }\n case \"default\": {\n return {\n border: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[4],\n background: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white,\n color: theme.colorScheme === \"dark\" ? theme.white : theme.black,\n hover: theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.colors.gray[0]\n };\n }\n case \"white\": {\n return {\n border: \"transparent\",\n background: theme.white,\n color: getThemeColor(color, getPrimaryShade()),\n hover: null\n };\n }\n case \"transparent\": {\n return {\n border: \"transparent\",\n color: color === \"dark\" ? theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.dark[9] : getThemeColor(color, theme.colorScheme === \"dark\" ? 2 : getPrimaryShade(\"light\")),\n background: \"transparent\",\n hover: null\n };\n }\n case \"gradient\": {\n return {\n background: getGradient(gradient2),\n color: theme.white,\n border: \"transparent\",\n hover: null\n };\n }\n default: {\n const _primaryShade = getPrimaryShade();\n const _shade = colorInfo.isSplittedColor ? colorInfo.shade : _primaryShade;\n const _color = colorInfo.isSplittedColor ? colorInfo.key : color;\n return {\n border: \"transparent\",\n background: getThemeColor(_color, _shade, primaryFallback),\n color: theme.white,\n hover: getThemeColor(_color, _shade === 9 ? 8 : _shade + 1)\n };\n }\n }\n };\n}\n\nexport { variant };\n//# sourceMappingURL=variant.js.map\n","import { primaryShade } from '../primary-shade/primary-shade.js';\n\nfunction primaryColor(theme) {\n return (colorScheme) => {\n const shade = primaryShade(theme)(colorScheme);\n return theme.colors[theme.primaryColor][shade];\n };\n}\n\nexport { primaryColor };\n//# sourceMappingURL=primary-color.js.map\n","function hover(hoverStyle) {\n return {\n \"@media (hover: hover)\": {\n \"&:hover\": hoverStyle\n },\n \"@media (hover: none)\": {\n \"&:active\": hoverStyle\n }\n };\n}\n\nexport { hover };\n//# sourceMappingURL=hover.js.map\n","function placeholderStyles(theme) {\n return () => ({\n userSelect: \"none\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[5]\n });\n}\n\nexport { placeholderStyles };\n//# sourceMappingURL=placeholder-styles.js.map\n","function dimmed(theme) {\n return () => theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6];\n}\n\nexport { dimmed };\n//# sourceMappingURL=dimmed.js.map\n","import { fontStyles } from './font-styles/font-styles.js';\nimport { focusStyles } from './focus-styles/focus-styles.js';\nimport { themeColor } from './theme-color/theme-color.js';\nimport { linearGradient, radialGradient, gradient } from './gradient/gradient.js';\nimport { smallerThan, largerThan } from './breakpoints/breakpoints.js';\nimport { rgba } from './rgba/rgba.js';\nimport { cover } from './cover/cover.js';\nimport { darken } from './darken/darken.js';\nimport { lighten } from './lighten/lighten.js';\nimport { radius } from './radius/radius.js';\nimport { variant } from './variant/variant.js';\nimport { primaryShade } from './primary-shade/primary-shade.js';\nimport { primaryColor } from './primary-color/primary-color.js';\nimport { hover } from './hover/hover.js';\nimport { placeholderStyles } from './placeholder-styles/placeholder-styles.js';\nimport { dimmed } from './dimmed/dimmed.js';\n\nconst fns = {\n fontStyles,\n themeColor,\n focusStyles,\n linearGradient,\n radialGradient,\n smallerThan,\n largerThan,\n rgba,\n cover,\n darken,\n lighten,\n radius,\n variant,\n primaryShade,\n hover,\n gradient,\n primaryColor,\n placeholderStyles,\n dimmed\n};\n\nexport { fns };\n//# sourceMappingURL=index.js.map\n","import { fns } from './fns/index.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction attachFunctions(themeBase) {\n return __spreadProps(__spreadValues({}, themeBase), {\n fn: {\n fontStyles: fns.fontStyles(themeBase),\n themeColor: fns.themeColor(themeBase),\n focusStyles: fns.focusStyles(themeBase),\n largerThan: fns.largerThan(themeBase),\n smallerThan: fns.smallerThan(themeBase),\n radialGradient: fns.radialGradient,\n linearGradient: fns.linearGradient,\n gradient: fns.gradient(themeBase),\n rgba: fns.rgba,\n cover: fns.cover,\n lighten: fns.lighten,\n darken: fns.darken,\n primaryShade: fns.primaryShade(themeBase),\n radius: fns.radius(themeBase),\n variant: fns.variant(themeBase),\n hover: fns.hover,\n primaryColor: fns.primaryColor(themeBase),\n placeholderStyles: fns.placeholderStyles(themeBase),\n dimmed: fns.dimmed(themeBase)\n }\n });\n}\n\nexport { attachFunctions };\n//# sourceMappingURL=attach-functions.js.map\n","import { DEFAULT_COLORS } from './default-colors.js';\nimport { attachFunctions } from './functions/attach-functions.js';\n\nconst MANTINE_COLORS = Object.keys(DEFAULT_COLORS);\nconst MANTINE_SIZES = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\nconst _DEFAULT_THEME = {\n dir: \"ltr\",\n primaryShade: {\n light: 6,\n dark: 8\n },\n focusRing: \"auto\",\n loader: \"oval\",\n colorScheme: \"light\",\n white: \"#fff\",\n black: \"#000\",\n defaultRadius: \"sm\",\n transitionTimingFunction: \"ease\",\n colors: DEFAULT_COLORS,\n lineHeight: 1.55,\n fontFamily: \"-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji\",\n fontFamilyMonospace: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace\",\n primaryColor: \"blue\",\n respectReducedMotion: true,\n cursorType: \"default\",\n defaultGradient: {\n from: \"indigo\",\n to: \"cyan\",\n deg: 45\n },\n shadows: {\n xs: \"0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.05), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.1)\",\n sm: \"0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 0.625rem 0.9375rem -0.3125rem, rgba(0, 0, 0, 0.04) 0 0.4375rem 0.4375rem -0.3125rem\",\n md: \"0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 1.25rem 1.5625rem -0.3125rem, rgba(0, 0, 0, 0.04) 0 0.625rem 0.625rem -0.3125rem\",\n lg: \"0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 1.75rem 1.4375rem -0.4375rem, rgba(0, 0, 0, 0.04) 0 0.75rem 0.75rem -0.4375rem\",\n xl: \"0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 2.25rem 1.75rem -0.4375rem, rgba(0, 0, 0, 0.04) 0 1.0625rem 1.0625rem -0.4375rem\"\n },\n fontSizes: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\"\n },\n radius: {\n xs: \"0.125rem\",\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"1rem\",\n xl: \"2rem\"\n },\n spacing: {\n xs: \"0.625rem\",\n sm: \"0.75rem\",\n md: \"1rem\",\n lg: \"1.25rem\",\n xl: \"1.5rem\"\n },\n breakpoints: {\n xs: \"36em\",\n sm: \"48em\",\n md: \"62em\",\n lg: \"75em\",\n xl: \"88em\"\n },\n headings: {\n fontFamily: \"-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji\",\n fontWeight: 700,\n sizes: {\n h1: { fontSize: \"2.125rem\", lineHeight: 1.3, fontWeight: void 0 },\n h2: { fontSize: \"1.625rem\", lineHeight: 1.35, fontWeight: void 0 },\n h3: { fontSize: \"1.375rem\", lineHeight: 1.4, fontWeight: void 0 },\n h4: { fontSize: \"1.125rem\", lineHeight: 1.45, fontWeight: void 0 },\n h5: { fontSize: \"1rem\", lineHeight: 1.5, fontWeight: void 0 },\n h6: { fontSize: \"0.875rem\", lineHeight: 1.5, fontWeight: void 0 }\n }\n },\n other: {},\n components: {},\n activeStyles: { transform: \"translateY(0.0625rem)\" },\n datesLocale: \"en\",\n globalStyles: void 0,\n focusRingStyles: {\n styles: (theme) => ({\n outlineOffset: \"0.125rem\",\n outline: `0.125rem solid ${theme.colors[theme.primaryColor][theme.colorScheme === \"dark\" ? 7 : 5]}`\n }),\n resetStyles: () => ({ outline: \"none\" }),\n inputStyles: (theme) => ({\n outline: \"none\",\n borderColor: theme.colors[theme.primaryColor][typeof theme.primaryShade === \"object\" ? theme.primaryShade[theme.colorScheme] : theme.primaryShade]\n })\n }\n};\nconst DEFAULT_THEME = attachFunctions(_DEFAULT_THEME);\n\nexport { DEFAULT_THEME, MANTINE_COLORS, MANTINE_SIZES, _DEFAULT_THEME };\n//# sourceMappingURL=default-theme.js.map\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport { weakMemoize as default };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import React from 'react';\nimport { Global } from '@emotion/react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction GlobalStyles({ theme }) {\n return /* @__PURE__ */ React.createElement(Global, {\n styles: {\n \"*, *::before, *::after\": {\n boxSizing: \"border-box\"\n },\n html: {\n colorScheme: theme.colorScheme === \"dark\" ? \"dark\" : \"light\"\n },\n body: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n lineHeight: theme.lineHeight,\n fontSize: theme.fontSizes.md,\n WebkitFontSmoothing: \"antialiased\",\n MozOsxFontSmoothing: \"grayscale\"\n })\n }\n });\n}\n\nexport { GlobalStyles };\n//# sourceMappingURL=GlobalStyles.js.map\n","import React from 'react';\nimport { Global } from '@emotion/react';\nimport { rem, em } from './utils/rem/rem.js';\n\nfunction assignSizeVariables(variables, sizes, name, targetUnitConverter = rem) {\n Object.keys(sizes).forEach((size) => {\n variables[`--mantine-${name}-${size}`] = targetUnitConverter(sizes[size]);\n });\n}\nfunction MantineCssVariables({ theme }) {\n const variables = {\n \"--mantine-color-white\": theme.white,\n \"--mantine-color-black\": theme.black,\n \"--mantine-transition-timing-function\": theme.transitionTimingFunction,\n \"--mantine-line-height\": `${theme.lineHeight}`,\n \"--mantine-font-family\": theme.fontFamily,\n \"--mantine-font-family-monospace\": theme.fontFamilyMonospace,\n \"--mantine-font-family-headings\": theme.headings.fontFamily,\n \"--mantine-heading-font-weight\": `${theme.headings.fontWeight}`\n };\n assignSizeVariables(variables, theme.shadows, \"shadow\");\n assignSizeVariables(variables, theme.fontSizes, \"font-size\");\n assignSizeVariables(variables, theme.radius, \"radius\");\n assignSizeVariables(variables, theme.spacing, \"spacing\");\n assignSizeVariables(variables, theme.breakpoints, \"breakpoints\", em);\n Object.keys(theme.colors).forEach((color) => {\n theme.colors[color].forEach((shade, index) => {\n variables[`--mantine-color-${color}-${index}`] = shade;\n });\n });\n const headings = theme.headings.sizes;\n Object.keys(headings).forEach((heading) => {\n variables[`--mantine-${heading}-font-size`] = headings[heading].fontSize;\n variables[`--mantine-${heading}-line-height`] = `${headings[heading].lineHeight}`;\n });\n return /* @__PURE__ */ React.createElement(Global, {\n styles: {\n \":root\": variables\n }\n });\n}\n\nexport { MantineCssVariables };\n//# sourceMappingURL=MantineCssVariables.js.map\n","import { attachFunctions } from '../../functions/attach-functions.js';\nimport { getBreakpointValue } from '../../functions/fns/breakpoints/breakpoints.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction mergeTheme(currentTheme, themeOverride) {\n var _a;\n if (!themeOverride) {\n return currentTheme;\n }\n const result = Object.keys(currentTheme).reduce((acc, key) => {\n if (key === \"headings\" && themeOverride.headings) {\n const sizes = themeOverride.headings.sizes ? Object.keys(currentTheme.headings.sizes).reduce((headingsAcc, h) => {\n headingsAcc[h] = __spreadValues(__spreadValues({}, currentTheme.headings.sizes[h]), themeOverride.headings.sizes[h]);\n return headingsAcc;\n }, {}) : currentTheme.headings.sizes;\n return __spreadProps(__spreadValues({}, acc), {\n headings: __spreadProps(__spreadValues(__spreadValues({}, currentTheme.headings), themeOverride.headings), {\n sizes\n })\n });\n }\n if (key === \"breakpoints\" && themeOverride.breakpoints) {\n const mergedBreakpoints = __spreadValues(__spreadValues({}, currentTheme.breakpoints), themeOverride.breakpoints);\n return __spreadProps(__spreadValues({}, acc), {\n breakpoints: Object.fromEntries(Object.entries(mergedBreakpoints).sort((a, b) => getBreakpointValue(a[1]) - getBreakpointValue(b[1])))\n });\n }\n acc[key] = typeof themeOverride[key] === \"object\" ? __spreadValues(__spreadValues({}, currentTheme[key]), themeOverride[key]) : typeof themeOverride[key] === \"number\" || typeof themeOverride[key] === \"boolean\" || typeof themeOverride[key] === \"function\" ? themeOverride[key] : themeOverride[key] || currentTheme[key];\n return acc;\n }, {});\n if ((themeOverride == null ? void 0 : themeOverride.fontFamily) && !((_a = themeOverride == null ? void 0 : themeOverride.headings) == null ? void 0 : _a.fontFamily)) {\n result.headings.fontFamily = themeOverride.fontFamily;\n }\n if (!(result.primaryColor in result.colors)) {\n throw new Error(\"MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more \\u2013 https://mantine.dev/theming/colors/#primary-color\");\n }\n return result;\n}\nfunction mergeThemeWithFunctions(currentTheme, themeOverride) {\n return attachFunctions(mergeTheme(currentTheme, themeOverride));\n}\n\nexport { mergeTheme, mergeThemeWithFunctions };\n//# sourceMappingURL=merge-theme.js.map\n","function filterProps(props) {\n return Object.keys(props).reduce((acc, key) => {\n if (props[key] !== void 0) {\n acc[key] = props[key];\n }\n return acc;\n }, {});\n}\n\nexport { filterProps };\n//# sourceMappingURL=filter-props.js.map\n","import React from 'react';\nimport { Global } from '@emotion/react';\nimport { rem } from './utils/rem/rem.js';\n\nconst styles = {\n html: {\n fontFamily: \"sans-serif\",\n lineHeight: \"1.15\",\n textSizeAdjust: \"100%\"\n },\n body: {\n margin: 0\n },\n \"article, aside, footer, header, nav, section, figcaption, figure, main\": {\n display: \"block\"\n },\n h1: {\n fontSize: \"2em\"\n },\n hr: {\n boxSizing: \"content-box\",\n height: 0,\n overflow: \"visible\"\n },\n pre: {\n fontFamily: \"monospace, monospace\",\n fontSize: \"1em\"\n },\n a: {\n background: \"transparent\",\n textDecorationSkip: \"objects\"\n },\n \"a:active, a:hover\": {\n outlineWidth: 0\n },\n \"abbr[title]\": {\n borderBottom: \"none\",\n textDecoration: \"underline\"\n },\n \"b, strong\": {\n fontWeight: \"bolder\"\n },\n \"code, kbp, samp\": {\n fontFamily: \"monospace, monospace\",\n fontSize: \"1em\"\n },\n dfn: {\n fontStyle: \"italic\"\n },\n mark: {\n backgroundColor: \"#ff0\",\n color: \"#000\"\n },\n small: {\n fontSize: \"80%\"\n },\n \"sub, sup\": {\n fontSize: \"75%\",\n lineHeight: 0,\n position: \"relative\",\n verticalAlign: \"baseline\"\n },\n sup: {\n top: \"-0.5em\"\n },\n sub: {\n bottom: \"-0.25em\"\n },\n \"audio, video\": {\n display: \"inline-block\"\n },\n \"audio:not([controls])\": {\n display: \"none\",\n height: 0\n },\n img: {\n borderStyle: \"none\",\n verticalAlign: \"middle\"\n },\n \"svg:not(:root)\": {\n overflow: \"hidden\"\n },\n \"button, input, optgroup, select, textarea\": {\n fontFamily: \"sans-serif\",\n fontSize: \"100%\",\n lineHeight: \"1.15\",\n margin: 0\n },\n \"button, input\": {\n overflow: \"visible\"\n },\n \"button, select\": {\n textTransform: \"none\"\n },\n \"button, [type=reset], [type=submit]\": {\n WebkitAppearance: \"button\"\n },\n \"button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner\": {\n borderStyle: \"none\",\n padding: 0\n },\n \"button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring\": {\n outline: `${rem(1)} dotted ButtonText`\n },\n legend: {\n boxSizing: \"border-box\",\n color: \"inherit\",\n display: \"table\",\n maxWidth: \"100%\",\n padding: 0,\n whiteSpace: \"normal\"\n },\n progress: {\n display: \"inline-block\",\n verticalAlign: \"baseline\"\n },\n textarea: {\n overflow: \"auto\"\n },\n \"[type=checkbox], [type=radio]\": {\n boxSizing: \"border-box\",\n padding: 0\n },\n \"[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button\": {\n height: \"auto\"\n },\n \"[type=search]\": {\n appearance: \"none\"\n },\n \"[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration\": {\n appearance: \"none\"\n },\n \"::-webkit-file-upload-button\": {\n appearance: \"button\",\n font: \"inherit\"\n },\n \"details, menu\": {\n display: \"block\"\n },\n summary: {\n display: \"list-item\"\n },\n canvas: {\n display: \"inline-block\"\n },\n template: {\n display: \"none\"\n }\n};\nfunction NormalizeCSS() {\n return /* @__PURE__ */ React.createElement(Global, {\n styles\n });\n}\n\nexport { NormalizeCSS };\n//# sourceMappingURL=NormalizeCSS.js.map\n","import React, { createContext, useContext } from 'react';\nimport { ThemeProvider, Global } from '@emotion/react';\nimport { DEFAULT_THEME } from './default-theme.js';\nimport { GlobalStyles } from './GlobalStyles.js';\nimport { MantineCssVariables } from './MantineCssVariables.js';\nimport { mergeThemeWithFunctions } from './utils/merge-theme/merge-theme.js';\nimport { filterProps } from './utils/filter-props/filter-props.js';\nimport { NormalizeCSS } from './NormalizeCSS.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst MantineProviderContext = createContext({\n theme: DEFAULT_THEME\n});\nfunction useMantineTheme() {\n var _a;\n return ((_a = useContext(MantineProviderContext)) == null ? void 0 : _a.theme) || DEFAULT_THEME;\n}\nfunction useMantineProviderStyles(component) {\n const theme = useMantineTheme();\n const getStyles = (name) => {\n var _a, _b, _c, _d;\n return {\n styles: ((_a = theme.components[name]) == null ? void 0 : _a.styles) || {},\n classNames: ((_b = theme.components[name]) == null ? void 0 : _b.classNames) || {},\n variants: (_c = theme.components[name]) == null ? void 0 : _c.variants,\n sizes: (_d = theme.components[name]) == null ? void 0 : _d.sizes\n };\n };\n if (Array.isArray(component)) {\n return component.map(getStyles);\n }\n return [getStyles(component)];\n}\nfunction useMantineEmotionCache() {\n var _a;\n return (_a = useContext(MantineProviderContext)) == null ? void 0 : _a.emotionCache;\n}\nfunction useComponentDefaultProps(component, defaultProps, props) {\n var _a;\n const theme = useMantineTheme();\n const contextPropsPayload = (_a = theme.components[component]) == null ? void 0 : _a.defaultProps;\n const contextProps = typeof contextPropsPayload === \"function\" ? contextPropsPayload(theme) : contextPropsPayload;\n return __spreadValues(__spreadValues(__spreadValues({}, defaultProps), contextProps), filterProps(props));\n}\nfunction MantineProvider({\n theme,\n emotionCache,\n withNormalizeCSS = false,\n withGlobalStyles = false,\n withCSSVariables = false,\n inherit = false,\n children\n}) {\n const ctx = useContext(MantineProviderContext);\n const mergedTheme = mergeThemeWithFunctions(DEFAULT_THEME, inherit ? __spreadValues(__spreadValues({}, ctx.theme), theme) : theme);\n return /* @__PURE__ */ React.createElement(ThemeProvider, {\n theme: mergedTheme\n }, /* @__PURE__ */ React.createElement(MantineProviderContext.Provider, {\n value: { theme: mergedTheme, emotionCache }\n }, withNormalizeCSS && /* @__PURE__ */ React.createElement(NormalizeCSS, null), withGlobalStyles && /* @__PURE__ */ React.createElement(GlobalStyles, {\n theme: mergedTheme\n }), withCSSVariables && /* @__PURE__ */ React.createElement(MantineCssVariables, {\n theme: mergedTheme\n }), typeof mergedTheme.globalStyles === \"function\" && /* @__PURE__ */ React.createElement(Global, {\n styles: mergedTheme.globalStyles(mergedTheme)\n }), children));\n}\nMantineProvider.displayName = \"@mantine/core/MantineProvider\";\n\nexport { MantineProvider, useComponentDefaultProps, useMantineEmotionCache, useMantineProviderStyles, useMantineTheme };\n//# sourceMappingURL=MantineProvider.js.map\n","const elevations = {\n app: 100,\n modal: 200,\n popover: 300,\n overlay: 400,\n max: 9999\n};\nfunction getDefaultZIndex(level) {\n return elevations[level];\n}\n\nexport { getDefaultZIndex };\n//# sourceMappingURL=get-default-z-index.js.map\n","import { useRef } from 'react';\n\nfunction useGuaranteedMemo(fn, deps) {\n const ref = useRef();\n if (!ref.current || deps.length !== ref.current.prevDeps.length || ref.current.prevDeps.map((v, i) => v === deps[i]).indexOf(false) >= 0) {\n ref.current = {\n v: fn(),\n prevDeps: [...deps]\n };\n }\n return ref.current.v;\n}\n\nexport { useGuaranteedMemo };\n//# sourceMappingURL=use-guaranteed-memo.js.map\n","import createCache from '@emotion/cache';\n\nconst defaultMantineEmotionCache = createCache({ key: \"mantine\", prepend: true });\n\nexport { defaultMantineEmotionCache };\n//# sourceMappingURL=default-emotion-cache.js.map\n","import { defaultMantineEmotionCache } from './default-emotion-cache.js';\nimport { useMantineEmotionCache } from '../theme/MantineProvider.js';\n\nfunction useEmotionCache() {\n const cache = useMantineEmotionCache();\n return cache || defaultMantineEmotionCache;\n}\n\nexport { useEmotionCache };\n//# sourceMappingURL=use-emotion-cache.js.map\n","import clsx from 'clsx';\nimport { serializeStyles } from '@emotion/serialize';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useGuaranteedMemo } from './utils/use-guaranteed-memo/use-guaranteed-memo.js';\nimport { useEmotionCache } from './use-emotion-cache.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst refPropertyName = \"ref\";\nfunction getRef(args) {\n let ref;\n if (args.length !== 1) {\n return { args, ref };\n }\n const [arg] = args;\n if (!(arg instanceof Object)) {\n return { args, ref };\n }\n if (!(refPropertyName in arg)) {\n return { args, ref };\n }\n ref = arg[refPropertyName];\n const argCopy = __spreadValues({}, arg);\n delete argCopy[refPropertyName];\n return { args: [argCopy], ref };\n}\nconst { cssFactory } = (() => {\n function merge(registered, css, className) {\n const registeredStyles = [];\n const rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n if (registeredStyles.length < 2) {\n return className;\n }\n return rawClassName + css(registeredStyles);\n }\n function _cssFactory(params) {\n const { cache } = params;\n const css = (...styles) => {\n const { ref, args } = getRef(styles);\n const serialized = serializeStyles(args, cache.registered);\n insertStyles(cache, serialized, false);\n return `${cache.key}-${serialized.name}${ref === void 0 ? \"\" : ` ${ref}`}`;\n };\n const cx = (...args) => merge(cache.registered, css, clsx(args));\n return { css, cx };\n }\n return { cssFactory: _cssFactory };\n})();\nfunction useCss() {\n const cache = useEmotionCache();\n return useGuaranteedMemo(() => cssFactory({ cache }), [cache]);\n}\n\nexport { cssFactory, useCss };\n//# sourceMappingURL=use-css.js.map\n","function mergeClassNames({\n cx,\n classes,\n context,\n classNames,\n name,\n cache\n}) {\n const contextClassNames = context.reduce((acc, item) => {\n Object.keys(item.classNames).forEach((key) => {\n if (typeof acc[key] !== \"string\") {\n acc[key] = `${item.classNames[key]}`;\n } else {\n acc[key] = `${acc[key]} ${item.classNames[key]}`;\n }\n });\n return acc;\n }, {});\n return Object.keys(classes).reduce((acc, className) => {\n acc[className] = cx(classes[className], contextClassNames[className], classNames != null && classNames[className], Array.isArray(name) ? name.filter(Boolean).map((part) => `${(cache == null ? void 0 : cache.key) || \"mantine\"}-${part}-${className}`).join(\" \") : name ? `${(cache == null ? void 0 : cache.key) || \"mantine\"}-${name}-${className}` : null);\n return acc;\n }, {});\n}\n\nexport { mergeClassNames };\n//# sourceMappingURL=merge-class-names.js.map\n","import { useCss } from './use-css.js';\nimport { useMantineTheme, useMantineProviderStyles, useMantineEmotionCache } from '../theme/MantineProvider.js';\nimport { mergeClassNames } from './utils/merge-class-names/merge-class-names.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction assignAccStyles(acc, styles) {\n if (styles) {\n Object.keys(styles).forEach((key) => {\n if (!acc[key]) {\n acc[key] = __spreadValues({}, styles[key]);\n } else {\n acc[key] = __spreadValues(__spreadValues({}, acc[key]), styles[key]);\n }\n });\n }\n return acc;\n}\nfunction getStyles(styles, theme, params, contextParams) {\n const extractStyles = (stylesPartial) => typeof stylesPartial === \"function\" ? stylesPartial(theme, params || {}, contextParams) : stylesPartial || {};\n if (Array.isArray(styles)) {\n return styles.map((item) => extractStyles(item.styles)).reduce((acc, item) => assignAccStyles(acc, item), {});\n }\n return extractStyles(styles);\n}\nfunction getContextVariation({ ctx, theme, params, variant, size }) {\n return ctx.reduce((acc, item) => {\n if (item.variants && variant in item.variants) {\n assignAccStyles(acc, item.variants[variant](theme, params, { variant, size }));\n }\n if (item.sizes && size in item.sizes) {\n assignAccStyles(acc, item.sizes[size](theme, params, { variant, size }));\n }\n return acc;\n }, {});\n}\nfunction createStyles(input) {\n const getCssObject = typeof input === \"function\" ? input : () => input;\n function useStyles(params, options) {\n const theme = useMantineTheme();\n const context = useMantineProviderStyles(options == null ? void 0 : options.name);\n const cache = useMantineEmotionCache();\n const contextParams = { variant: options == null ? void 0 : options.variant, size: options == null ? void 0 : options.size };\n const { css, cx } = useCss();\n const cssObject = getCssObject(theme, params, contextParams);\n const componentStyles = getStyles(options == null ? void 0 : options.styles, theme, params, contextParams);\n const providerStyles = getStyles(context, theme, params, contextParams);\n const contextVariations = getContextVariation({\n ctx: context,\n theme,\n params,\n variant: options == null ? void 0 : options.variant,\n size: options == null ? void 0 : options.size\n });\n const classes = Object.fromEntries(Object.keys(cssObject).map((key) => {\n const mergedStyles = cx({ [css(cssObject[key])]: !(options == null ? void 0 : options.unstyled) }, css(contextVariations[key]), css(providerStyles[key]), css(componentStyles[key]));\n return [key, mergedStyles];\n }));\n return {\n classes: mergeClassNames({\n cx,\n classes,\n context,\n classNames: options == null ? void 0 : options.classNames,\n name: options == null ? void 0 : options.name,\n cache\n }),\n cx,\n theme\n };\n }\n return useStyles;\n}\n\nexport { createStyles };\n//# sourceMappingURL=create-styles.js.map\n","import { rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst popIn = {\n in: { opacity: 1, transform: \"scale(1)\" },\n out: { opacity: 0, transform: `scale(.9) translateY(${rem(10)})` },\n transitionProperty: \"transform, opacity\"\n};\nconst transitions = {\n fade: {\n in: { opacity: 1 },\n out: { opacity: 0 },\n transitionProperty: \"opacity\"\n },\n scale: {\n in: { opacity: 1, transform: \"scale(1)\" },\n out: { opacity: 0, transform: \"scale(0)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"scale-y\": {\n in: { opacity: 1, transform: \"scaleY(1)\" },\n out: { opacity: 0, transform: \"scaleY(0)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"scale-x\": {\n in: { opacity: 1, transform: \"scaleX(1)\" },\n out: { opacity: 0, transform: \"scaleX(0)\" },\n common: { transformOrigin: \"left\" },\n transitionProperty: \"transform, opacity\"\n },\n \"skew-up\": {\n in: { opacity: 1, transform: \"translateY(0) skew(0deg, 0deg)\" },\n out: { opacity: 0, transform: `translateY(-${rem(20)}) skew(-10deg, -5deg)` },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"skew-down\": {\n in: { opacity: 1, transform: \"translateY(0) skew(0deg, 0deg)\" },\n out: { opacity: 0, transform: `translateY(${rem(20)}) skew(-10deg, -5deg)` },\n common: { transformOrigin: \"bottom\" },\n transitionProperty: \"transform, opacity\"\n },\n \"rotate-left\": {\n in: { opacity: 1, transform: \"translateY(0) rotate(0deg)\" },\n out: { opacity: 0, transform: `translateY(${rem(20)}) rotate(-5deg)` },\n common: { transformOrigin: \"bottom\" },\n transitionProperty: \"transform, opacity\"\n },\n \"rotate-right\": {\n in: { opacity: 1, transform: \"translateY(0) rotate(0deg)\" },\n out: { opacity: 0, transform: `translateY(${rem(20)}) rotate(5deg)` },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-down\": {\n in: { opacity: 1, transform: \"translateY(0)\" },\n out: { opacity: 0, transform: \"translateY(-100%)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-up\": {\n in: { opacity: 1, transform: \"translateY(0)\" },\n out: { opacity: 0, transform: \"translateY(100%)\" },\n common: { transformOrigin: \"bottom\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-left\": {\n in: { opacity: 1, transform: \"translateX(0)\" },\n out: { opacity: 0, transform: \"translateX(100%)\" },\n common: { transformOrigin: \"left\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-right\": {\n in: { opacity: 1, transform: \"translateX(0)\" },\n out: { opacity: 0, transform: \"translateX(-100%)\" },\n common: { transformOrigin: \"right\" },\n transitionProperty: \"transform, opacity\"\n },\n pop: __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"center center\" }\n }),\n \"pop-bottom-left\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"bottom left\" }\n }),\n \"pop-bottom-right\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"bottom right\" }\n }),\n \"pop-top-left\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"top left\" }\n }),\n \"pop-top-right\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"top right\" }\n })\n};\n\nexport { transitions };\n//# sourceMappingURL=transitions.js.map\n","import { useRef, useEffect } from 'react';\n\nconst DEFAULT_EVENTS = [\"mousedown\", \"touchstart\"];\nfunction useClickOutside(handler, events, nodes) {\n const ref = useRef();\n useEffect(() => {\n const listener = (event) => {\n const { target } = event != null ? event : {};\n if (Array.isArray(nodes)) {\n const shouldIgnore = (target == null ? void 0 : target.hasAttribute(\"data-ignore-outside-clicks\")) || !document.body.contains(target) && target.tagName !== \"HTML\";\n const shouldTrigger = nodes.every((node) => !!node && !event.composedPath().includes(node));\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(target)) {\n handler();\n }\n };\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n return ref;\n}\n\nexport { useClickOutside };\n//# sourceMappingURL=use-click-outside.js.map\n","import { useState, useRef, useEffect } from 'react';\n\nfunction attachMediaListener(query, callback) {\n try {\n query.addEventListener(\"change\", callback);\n return () => query.removeEventListener(\"change\", callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\nfunction getInitialValue(query, initialValue) {\n if (typeof initialValue === \"boolean\") {\n return initialValue;\n }\n if (typeof window !== \"undefined\" && \"matchMedia\" in window) {\n return window.matchMedia(query).matches;\n }\n return false;\n}\nfunction useMediaQuery(query, initialValue, { getInitialValueInEffect } = {\n getInitialValueInEffect: true\n}) {\n const [matches, setMatches] = useState(getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue));\n const queryRef = useRef();\n useEffect(() => {\n if (\"matchMedia\" in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n return void 0;\n }, [query]);\n return matches;\n}\n\nexport { useMediaQuery };\n//# sourceMappingURL=use-media-query.js.map\n","import { useLayoutEffect, useEffect } from 'react';\n\nconst useIsomorphicEffect = typeof document !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicEffect };\n//# sourceMappingURL=use-isomorphic-effect.js.map\n","import { useRef, useEffect } from 'react';\n\nfunction useDidUpdate(fn, dependencies) {\n const mounted = useRef(false);\n useEffect(() => () => {\n mounted.current = false;\n }, []);\n useEffect(() => {\n if (mounted.current) {\n return fn();\n }\n mounted.current = true;\n return void 0;\n }, dependencies);\n}\n\nexport { useDidUpdate };\n//# sourceMappingURL=use-did-update.js.map\n","import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update.js';\n\nfunction useFocusReturn({ opened, shouldReturnFocus = true }) {\n const lastActiveElement = useRef();\n const returnFocus = () => {\n var _a;\n if (lastActiveElement.current && \"focus\" in lastActiveElement.current && typeof lastActiveElement.current.focus === \"function\") {\n (_a = lastActiveElement.current) == null ? void 0 : _a.focus({ preventScroll: true });\n }\n };\n useDidUpdate(() => {\n let timeout = -1;\n const clearFocusTimeout = (event) => {\n if (event.key === \"Tab\") {\n window.clearTimeout(timeout);\n }\n };\n document.addEventListener(\"keydown\", clearFocusTimeout);\n if (opened) {\n lastActiveElement.current = document.activeElement;\n } else if (shouldReturnFocus) {\n timeout = window.setTimeout(returnFocus, 10);\n }\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener(\"keydown\", clearFocusTimeout);\n };\n }, [opened, shouldReturnFocus]);\n return returnFocus;\n}\n\nexport { useFocusReturn };\n//# sourceMappingURL=use-focus-return.js.map\n","const TABBABLE_NODES = /input|select|textarea|button|object/;\nconst FOCUS_SELECTOR = \"a, input, select, textarea, button, object, [tabindex]\";\nfunction hidden(element) {\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return element.style.display === \"none\";\n}\nfunction visible(element) {\n const isHidden = element.getAttribute(\"aria-hidden\") || element.getAttribute(\"hidden\") || element.getAttribute(\"type\") === \"hidden\";\n if (isHidden) {\n return false;\n }\n let parentElement = element;\n while (parentElement) {\n if (parentElement === document.body || parentElement.nodeType === 11) {\n break;\n }\n if (hidden(parentElement)) {\n return false;\n }\n parentElement = parentElement.parentNode;\n }\n return true;\n}\nfunction getElementTabIndex(element) {\n let tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) {\n tabIndex = void 0;\n }\n return parseInt(tabIndex, 10);\n}\nfunction focusable(element) {\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));\n const res = TABBABLE_NODES.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\nfunction tabbable(element) {\n const tabIndex = getElementTabIndex(element);\n const isTabIndexNaN = Number.isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\nfunction findTabbableDescendants(element) {\n return Array.from(element.querySelectorAll(FOCUS_SELECTOR)).filter(tabbable);\n}\n\nexport { FOCUS_SELECTOR, findTabbableDescendants, focusable, tabbable };\n//# sourceMappingURL=tabbable.js.map\n","import { findTabbableDescendants } from './tabbable.js';\n\nfunction scopeTab(node, event) {\n const tabbable = findTabbableDescendants(node);\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n const root = node.getRootNode();\n const leavingFinalTabbable = finalTabbable === root.activeElement || node === root.activeElement;\n if (!leavingFinalTabbable) {\n return;\n }\n event.preventDefault();\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n if (target) {\n target.focus();\n }\n}\n\nexport { scopeTab };\n//# sourceMappingURL=scope-tab.js.map\n","function randomId() {\n return `mantine-${Math.random().toString(36).slice(2, 11)}`;\n}\n\nexport { randomId };\n//# sourceMappingURL=random-id.js.map\n","import { randomId } from '../utils/random-id/random-id.js';\n\nfunction createAriaHider(containerNode, selector = \"body > :not(script)\") {\n const id = randomId();\n const rootNodes = Array.from(document.querySelectorAll(selector)).map((node) => {\n var _a;\n if (((_a = node == null ? void 0 : node.shadowRoot) == null ? void 0 : _a.contains(containerNode)) || node.contains(containerNode)) {\n return void 0;\n }\n const ariaHidden = node.getAttribute(\"aria-hidden\");\n const prevAriaHidden = node.getAttribute(\"data-hidden\");\n const prevFocusId = node.getAttribute(\"data-focus-id\");\n node.setAttribute(\"data-focus-id\", id);\n if (ariaHidden === null || ariaHidden === \"false\") {\n node.setAttribute(\"aria-hidden\", \"true\");\n } else if (!prevAriaHidden && !prevFocusId) {\n node.setAttribute(\"data-hidden\", ariaHidden);\n }\n return {\n node,\n ariaHidden: prevAriaHidden || null\n };\n });\n return () => {\n rootNodes.forEach((item) => {\n if (!item || id !== item.node.getAttribute(\"data-focus-id\")) {\n return;\n }\n if (item.ariaHidden === null) {\n item.node.removeAttribute(\"aria-hidden\");\n } else {\n item.node.setAttribute(\"aria-hidden\", item.ariaHidden);\n }\n item.node.removeAttribute(\"data-focus-id\");\n item.node.removeAttribute(\"data-hidden\");\n });\n };\n}\n\nexport { createAriaHider };\n//# sourceMappingURL=create-aria-hider.js.map\n","import { useRef, useCallback, useEffect } from 'react';\nimport { FOCUS_SELECTOR, tabbable, focusable } from './tabbable.js';\nimport { scopeTab } from './scope-tab.js';\nimport { createAriaHider } from './create-aria-hider.js';\n\nfunction useFocusTrap(active = true) {\n const ref = useRef();\n const restoreAria = useRef(null);\n const focusNode = (node) => {\n let focusElement = node.querySelector(\"[data-autofocus]\");\n if (!focusElement) {\n const children = Array.from(node.querySelectorAll(FOCUS_SELECTOR));\n focusElement = children.find(tabbable) || children.find(focusable) || null;\n if (!focusElement && focusable(node))\n focusElement = node;\n }\n if (focusElement) {\n focusElement.focus({ preventScroll: true });\n } else if (process.env.NODE_ENV === \"development\") {\n console.warn(\"[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node\", node);\n }\n };\n const setRef = useCallback((node) => {\n if (!active) {\n return;\n }\n if (node === null) {\n if (restoreAria.current) {\n restoreAria.current();\n restoreAria.current = null;\n }\n return;\n }\n restoreAria.current = createAriaHider(node);\n if (ref.current === node) {\n return;\n }\n if (node) {\n setTimeout(() => {\n if (node.getRootNode()) {\n focusNode(node);\n } else if (process.env.NODE_ENV === \"development\") {\n console.warn(\"[@mantine/hooks/use-focus-trap] Ref node is not part of the dom\", node);\n }\n });\n ref.current = node;\n } else {\n ref.current = null;\n }\n }, [active]);\n useEffect(() => {\n if (!active) {\n return void 0;\n }\n ref.current && setTimeout(() => focusNode(ref.current));\n const handleKeyDown = (event) => {\n if (event.key === \"Tab\" && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (restoreAria.current) {\n restoreAria.current();\n }\n };\n }, [active]);\n return setRef;\n}\n\nexport { useFocusTrap };\n//# sourceMappingURL=use-focus-trap.js.map\n","import React from 'react';\n\nconst __useId = React[\"useId\".toString()] || (() => void 0);\nfunction useReactId() {\n const id = __useId();\n return id ? `mantine-${id.replace(/:/g, \"\")}` : \"\";\n}\n\nexport { useReactId };\n//# sourceMappingURL=use-react-id.js.map\n","import { useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect.js';\nimport { useReactId } from './use-react-id.js';\nimport { randomId } from '../utils/random-id/random-id.js';\n\nfunction useId(staticId) {\n const reactId = useReactId();\n const [uuid, setUuid] = useState(reactId);\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n if (typeof staticId === \"string\") {\n return staticId;\n }\n if (typeof window === \"undefined\") {\n return reactId;\n }\n return uuid;\n}\n\nexport { useId };\n//# sourceMappingURL=use-id.js.map\n","import { useEffect } from 'react';\n\nfunction useWindowEvent(type, listener, options) {\n useEffect(() => {\n window.addEventListener(type, listener, options);\n return () => window.removeEventListener(type, listener, options);\n }, [type, listener]);\n}\n\nexport { useWindowEvent };\n//# sourceMappingURL=use-window-event.js.map\n","function assignRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n ref.current = value;\n }\n}\n\nexport { assignRef };\n//# sourceMappingURL=assign-ref.js.map\n","import { useCallback } from 'react';\nimport { assignRef } from '../utils/assign-ref/assign-ref.js';\n\nfunction mergeRefs(...refs) {\n return (node) => {\n refs.forEach((ref) => assignRef(ref, node));\n };\n}\nfunction useMergedRef(...refs) {\n return useCallback(mergeRefs(...refs), refs);\n}\n\nexport { mergeRefs, useMergedRef };\n//# sourceMappingURL=use-merged-ref.js.map\n","import { useState } from 'react';\n\nfunction useUncontrolled({\n value,\n defaultValue,\n finalValue,\n onChange = () => {\n }\n}) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue !== void 0 ? defaultValue : finalValue);\n const handleUncontrolledChange = (val) => {\n setUncontrolledValue(val);\n onChange == null ? void 0 : onChange(val);\n };\n if (value !== void 0) {\n return [value, onChange, true];\n }\n return [uncontrolledValue, handleUncontrolledChange, false];\n}\n\nexport { useUncontrolled };\n//# sourceMappingURL=use-uncontrolled.js.map\n","import { useMediaQuery } from '../use-media-query/use-media-query.js';\n\nfunction useReducedMotion(initialValue, options) {\n return useMediaQuery(\"(prefers-reduced-motion: reduce)\", initialValue, options);\n}\n\nexport { useReducedMotion };\n//# sourceMappingURL=use-reduced-motion.js.map\n","import { useState, useCallback } from 'react';\n\nfunction useDisclosure(initialState = false, callbacks) {\n const { onOpen, onClose } = callbacks || {};\n const [opened, setOpened] = useState(initialState);\n const open = useCallback(() => {\n setOpened((isOpened) => {\n if (!isOpened) {\n onOpen == null ? void 0 : onOpen();\n return true;\n }\n return isOpened;\n });\n }, [onOpen]);\n const close = useCallback(() => {\n setOpened((isOpened) => {\n if (isOpened) {\n onClose == null ? void 0 : onClose();\n return false;\n }\n return isOpened;\n });\n }, [onClose]);\n const toggle = useCallback(() => {\n opened ? close() : open();\n }, [close, open, opened]);\n return [opened, { open, close, toggle }];\n}\n\nexport { useDisclosure };\n//# sourceMappingURL=use-disclosure.js.map\n","import { filterProps } from '@mantine/styles';\n\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction extractSystemStyles(others) {\n const _a = others, {\n m,\n mx,\n my,\n mt,\n mb,\n ml,\n mr,\n p,\n px,\n py,\n pt,\n pb,\n pl,\n pr,\n bg,\n c,\n opacity,\n ff,\n fz,\n fw,\n lts,\n ta,\n lh,\n fs,\n tt,\n td,\n w,\n miw,\n maw,\n h,\n mih,\n mah,\n bgsz,\n bgp,\n bgr,\n bga,\n pos,\n top,\n left,\n bottom,\n right,\n inset,\n display\n } = _a, rest = __objRest(_a, [\n \"m\",\n \"mx\",\n \"my\",\n \"mt\",\n \"mb\",\n \"ml\",\n \"mr\",\n \"p\",\n \"px\",\n \"py\",\n \"pt\",\n \"pb\",\n \"pl\",\n \"pr\",\n \"bg\",\n \"c\",\n \"opacity\",\n \"ff\",\n \"fz\",\n \"fw\",\n \"lts\",\n \"ta\",\n \"lh\",\n \"fs\",\n \"tt\",\n \"td\",\n \"w\",\n \"miw\",\n \"maw\",\n \"h\",\n \"mih\",\n \"mah\",\n \"bgsz\",\n \"bgp\",\n \"bgr\",\n \"bga\",\n \"pos\",\n \"top\",\n \"left\",\n \"bottom\",\n \"right\",\n \"inset\",\n \"display\"\n ]);\n const systemStyles = filterProps({\n m,\n mx,\n my,\n mt,\n mb,\n ml,\n mr,\n p,\n px,\n py,\n pt,\n pb,\n pl,\n pr,\n bg,\n c,\n opacity,\n ff,\n fz,\n fw,\n lts,\n ta,\n lh,\n fs,\n tt,\n td,\n w,\n miw,\n maw,\n h,\n mih,\n mah,\n bgsz,\n bgp,\n bgr,\n bga,\n pos,\n top,\n left,\n bottom,\n right,\n inset,\n display\n });\n return { systemStyles, rest };\n}\n\nexport { extractSystemStyles };\n//# sourceMappingURL=extract-system-styles.js.map\n","import { getBreakpointValue, getSize } from '@mantine/styles';\n\nfunction getSortedKeys(value, theme) {\n const sorted = Object.keys(value).filter((breakpoint) => breakpoint !== \"base\").sort((a, b) => getBreakpointValue(getSize({ size: a, sizes: theme.breakpoints })) - getBreakpointValue(getSize({ size: b, sizes: theme.breakpoints })));\n return \"base\" in value ? [\"base\", ...sorted] : sorted;\n}\nfunction getResponsiveValue({ value, theme, getValue, property }) {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\") {\n const result = getSortedKeys(value, theme).reduce((acc, breakpointKey) => {\n if (breakpointKey === \"base\" && value.base !== void 0) {\n const baseValue = getValue(value.base, theme);\n if (Array.isArray(property)) {\n property.forEach((prop) => {\n acc[prop] = baseValue;\n });\n return acc;\n }\n acc[property] = baseValue;\n return acc;\n }\n const breakpointValue = getValue(value[breakpointKey], theme);\n if (Array.isArray(property)) {\n acc[theme.fn.largerThan(breakpointKey)] = {};\n property.forEach((prop) => {\n acc[theme.fn.largerThan(breakpointKey)][prop] = breakpointValue;\n });\n return acc;\n }\n acc[theme.fn.largerThan(breakpointKey)] = {\n [property]: breakpointValue\n };\n return acc;\n }, {});\n return result;\n }\n const cssValue = getValue(value, theme);\n if (Array.isArray(property)) {\n return property.reduce((acc, prop) => {\n acc[prop] = cssValue;\n return acc;\n }, {});\n }\n return { [property]: cssValue };\n}\n\nexport { getResponsiveValue };\n//# sourceMappingURL=get-responsive-value.js.map\n","function getColorValue(color, theme) {\n if (color === \"dimmed\") {\n return theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6];\n }\n return theme.fn.variant({ variant: \"filled\", color, primaryFallback: false }).background;\n}\n\nexport { getColorValue };\n//# sourceMappingURL=get-color-value.js.map\n","import { rem } from '@mantine/styles';\n\nfunction getSizeValue(value) {\n return rem(value);\n}\nfunction identity(value) {\n return value;\n}\n\nexport { getSizeValue, identity };\n//# sourceMappingURL=get-default-value.js.map\n","import { getSize } from '@mantine/styles';\n\nfunction getFontSizeValue(size, theme) {\n return getSize({ size, sizes: theme.fontSizes });\n}\n\nexport { getFontSizeValue };\n//# sourceMappingURL=get-font-size-value.js.map\n","import { getSize } from '@mantine/styles';\n\nconst NEGATIVE_VALUES = [\"-xs\", \"-sm\", \"-md\", \"-lg\", \"-xl\"];\nfunction getSpacingValue(size, theme) {\n if (NEGATIVE_VALUES.includes(size)) {\n return `calc(${getSize({\n size: size.replace(\"-\", \"\"),\n sizes: theme.spacing\n })} * -1)`;\n }\n return getSize({ size, sizes: theme.spacing });\n}\n\nexport { getSpacingValue };\n//# sourceMappingURL=get-spacing-value.js.map\n","import { getColorValue } from './get-color-value.js';\nimport { identity, getSizeValue } from './get-default-value.js';\nimport { getFontSizeValue } from './get-font-size-value.js';\nimport { getSpacingValue } from './get-spacing-value.js';\n\nconst valueGetters = {\n identity,\n color: getColorValue,\n size: getSizeValue,\n fontSize: getFontSizeValue,\n spacing: getSpacingValue\n};\n\nexport { valueGetters };\n//# sourceMappingURL=value-getters.js.map\n","const SYSTEM_PROPS = {\n m: { type: \"spacing\", property: \"margin\" },\n mt: { type: \"spacing\", property: \"marginTop\" },\n mb: { type: \"spacing\", property: \"marginBottom\" },\n ml: { type: \"spacing\", property: \"marginLeft\" },\n mr: { type: \"spacing\", property: \"marginRight\" },\n mx: { type: \"spacing\", property: [\"marginRight\", \"marginLeft\"] },\n my: { type: \"spacing\", property: [\"marginTop\", \"marginBottom\"] },\n p: { type: \"spacing\", property: \"padding\" },\n pt: { type: \"spacing\", property: \"paddingTop\" },\n pb: { type: \"spacing\", property: \"paddingBottom\" },\n pl: { type: \"spacing\", property: \"paddingLeft\" },\n pr: { type: \"spacing\", property: \"paddingRight\" },\n px: { type: \"spacing\", property: [\"paddingRight\", \"paddingLeft\"] },\n py: { type: \"spacing\", property: [\"paddingTop\", \"paddingBottom\"] },\n bg: { type: \"color\", property: \"background\" },\n c: { type: \"color\", property: \"color\" },\n opacity: { type: \"identity\", property: \"opacity\" },\n ff: { type: \"identity\", property: \"fontFamily\" },\n fz: { type: \"fontSize\", property: \"fontSize\" },\n fw: { type: \"identity\", property: \"fontWeight\" },\n lts: { type: \"size\", property: \"letterSpacing\" },\n ta: { type: \"identity\", property: \"textAlign\" },\n lh: { type: \"identity\", property: \"lineHeight\" },\n fs: { type: \"identity\", property: \"fontStyle\" },\n tt: { type: \"identity\", property: \"textTransform\" },\n td: { type: \"identity\", property: \"textDecoration\" },\n w: { type: \"spacing\", property: \"width\" },\n miw: { type: \"spacing\", property: \"minWidth\" },\n maw: { type: \"spacing\", property: \"maxWidth\" },\n h: { type: \"spacing\", property: \"height\" },\n mih: { type: \"spacing\", property: \"minHeight\" },\n mah: { type: \"spacing\", property: \"maxHeight\" },\n bgsz: { type: \"size\", property: \"backgroundSize\" },\n bgp: { type: \"identity\", property: \"backgroundPosition\" },\n bgr: { type: \"identity\", property: \"backgroundRepeat\" },\n bga: { type: \"identity\", property: \"backgroundAttachment\" },\n pos: { type: \"identity\", property: \"position\" },\n top: { type: \"identity\", property: \"top\" },\n left: { type: \"size\", property: \"left\" },\n bottom: { type: \"size\", property: \"bottom\" },\n right: { type: \"size\", property: \"right\" },\n inset: { type: \"size\", property: \"inset\" },\n display: { type: \"identity\", property: \"display\" }\n};\n\nexport { SYSTEM_PROPS };\n//# sourceMappingURL=system-props.js.map\n","import { getResponsiveValue } from '../get-responsive-value/get-responsive-value.js';\nimport { valueGetters } from '../value-getters/value-getters.js';\nimport { SYSTEM_PROPS } from '../system-props/system-props.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction getSystemStyles(systemStyles, theme, systemProps = SYSTEM_PROPS) {\n const styles = Object.keys(systemProps).reduce((acc, systemProp) => {\n if (systemProp in systemStyles && systemStyles[systemProp] !== void 0) {\n acc.push(getResponsiveValue({\n value: systemStyles[systemProp],\n getValue: valueGetters[systemProps[systemProp].type],\n property: systemProps[systemProp].property,\n theme\n }));\n }\n return acc;\n }, []);\n return styles.reduce((acc, stylesPartial) => {\n Object.keys(stylesPartial).forEach((property) => {\n if (typeof stylesPartial[property] === \"object\" && stylesPartial[property] !== null) {\n if (!(property in acc)) {\n acc[property] = stylesPartial[property];\n } else {\n acc[property] = __spreadValues(__spreadValues({}, acc[property]), stylesPartial[property]);\n }\n } else {\n acc[property] = stylesPartial[property];\n }\n });\n return acc;\n }, {});\n}\n\nexport { getSystemStyles };\n//# sourceMappingURL=get-system-styles.js.map\n","import { useMantineTheme, useCss } from '@mantine/styles';\nimport { getSystemStyles } from '../style-system-props/get-system-styles/get-system-styles.js';\n\nfunction extractSx(sx, theme) {\n return typeof sx === \"function\" ? sx(theme) : sx;\n}\nfunction useSx(sx, systemProps, className) {\n const theme = useMantineTheme();\n const { css, cx } = useCss();\n if (Array.isArray(sx)) {\n return cx(className, css(getSystemStyles(systemProps, theme)), sx.map((partial) => css(extractSx(partial, theme))));\n }\n return cx(className, css(extractSx(sx, theme)), css(getSystemStyles(systemProps, theme)));\n}\n\nexport { useSx };\n//# sourceMappingURL=use-sx.js.map\n","import React, { forwardRef } from 'react';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { extractSystemStyles } from './style-system-props/extract-system-styles/extract-system-styles.js';\nimport { useSx } from './use-sx/use-sx.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst _Box = forwardRef((_a, ref) => {\n var _b = _a, { className, component, style, sx } = _b, others = __objRest(_b, [\"className\", \"component\", \"style\", \"sx\"]);\n const { systemStyles, rest } = extractSystemStyles(others);\n const Element = component || \"div\";\n return /* @__PURE__ */ React.createElement(Element, __spreadValues({\n ref,\n className: useSx(sx, systemStyles, className),\n style\n }, rest));\n});\n_Box.displayName = \"@mantine/core/Box\";\nconst Box = createPolymorphicComponent(_Box);\n\nexport { Box, _Box };\n//# sourceMappingURL=Box.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme) => ({\n root: __spreadProps(__spreadValues(__spreadValues({}, theme.fn.focusStyles()), theme.fn.fontStyles()), {\n cursor: \"pointer\",\n border: 0,\n padding: 0,\n appearance: \"none\",\n fontSize: theme.fontSizes.md,\n backgroundColor: \"transparent\",\n textAlign: \"left\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n textDecoration: \"none\",\n boxSizing: \"border-box\"\n })\n}));\n\nexport default useStyles;\n//# sourceMappingURL=UnstyledButton.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './UnstyledButton.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst _UnstyledButton = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"UnstyledButton\", {}, props), {\n className,\n component = \"button\",\n unstyled,\n variant\n } = _a, others = __objRest(_a, [\n \"className\",\n \"component\",\n \"unstyled\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles(null, { name: \"UnstyledButton\", unstyled, variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component,\n ref,\n className: cx(classes.root, className),\n type: component === \"button\" ? \"button\" : void 0\n }, others));\n});\n_UnstyledButton.displayName = \"@mantine/core/UnstyledButton\";\nconst UnstyledButton = createPolymorphicComponent(_UnstyledButton);\n\nexport { UnstyledButton, _UnstyledButton };\n//# sourceMappingURL=UnstyledButton.js.map\n","import { createStyles, rem, getSize } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst ACTION_ICON_VARIANTS = [\n \"subtle\",\n \"filled\",\n \"outline\",\n \"light\",\n \"default\",\n \"transparent\",\n \"gradient\"\n];\nconst sizes = {\n xs: rem(18),\n sm: rem(22),\n md: rem(28),\n lg: rem(34),\n xl: rem(44)\n};\nfunction getVariantStyles({ variant, theme, color, gradient }) {\n const colors = theme.fn.variant({ color, variant, gradient });\n if (variant === \"gradient\") {\n return {\n border: 0,\n backgroundImage: colors.background,\n color: colors.color,\n \"&:hover\": theme.fn.hover({\n backgroundSize: \"200%\"\n })\n };\n }\n if (ACTION_ICON_VARIANTS.includes(variant)) {\n return __spreadValues({\n border: `${rem(1)} solid ${colors.border}`,\n backgroundColor: colors.background,\n color: colors.color\n }, theme.fn.hover({\n backgroundColor: colors.hover\n }));\n }\n return null;\n}\nvar useStyles = createStyles((theme, { radius, color, gradient }, { variant, size }) => ({\n root: __spreadProps(__spreadValues({\n position: \"relative\",\n borderRadius: theme.fn.radius(radius),\n padding: 0,\n lineHeight: 1,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: getSize({ size, sizes }),\n minHeight: getSize({ size, sizes }),\n width: getSize({ size, sizes }),\n minWidth: getSize({ size, sizes })\n }, getVariantStyles({ variant, theme, color, gradient })), {\n \"&:active\": theme.activeStyles,\n \"& [data-action-icon-loader]\": {\n maxWidth: \"70%\"\n },\n \"&:disabled, &[data-disabled]\": {\n color: theme.colors.gray[theme.colorScheme === \"dark\" ? 6 : 4],\n cursor: \"not-allowed\",\n backgroundColor: variant === \"transparent\" ? void 0 : theme.fn.themeColor(\"gray\", theme.colorScheme === \"dark\" ? 8 : 1),\n borderColor: variant === \"transparent\" ? void 0 : theme.fn.themeColor(\"gray\", theme.colorScheme === \"dark\" ? 8 : 1),\n backgroundImage: \"none\",\n pointerEvents: \"none\",\n \"&:active\": {\n transform: \"none\"\n }\n },\n \"&[data-loading]\": {\n pointerEvents: \"none\",\n \"&::before\": __spreadProps(__spreadValues({\n content: '\"\"'\n }, theme.fn.cover(rem(-1))), {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.colors.dark[7], 0.5) : \"rgba(255, 255, 255, .5)\",\n borderRadius: theme.fn.radius(radius),\n cursor: \"not-allowed\"\n })\n }\n })\n}));\n\nexport default useStyles;\nexport { ACTION_ICON_VARIANTS, sizes };\n//# sourceMappingURL=ActionIcon.styles.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Bars(_a) {\n var _b = _a, { size, color } = _b, others = __objRest(_b, [\"size\", \"color\"]);\n const _a2 = others, { style } = _a2, rest = __objRest(_a2, [\"style\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 135 140\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: color,\n style: __spreadValues({ width: size }, style)\n }, rest), /* @__PURE__ */ React.createElement(\"rect\", {\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"30\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"60\",\n width: \"15\",\n height: \"140\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"90\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"120\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n}\n\nexport { Bars };\n//# sourceMappingURL=Bars.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Oval(_a) {\n var _b = _a, { size, color } = _b, others = __objRest(_b, [\"size\", \"color\"]);\n const _a2 = others, { style } = _a2, rest = __objRest(_a2, [\"style\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: color,\n style: __spreadValues({ width: size, height: size }, style)\n }, rest), /* @__PURE__ */ React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /* @__PURE__ */ React.createElement(\"g\", {\n transform: \"translate(2.5 2.5)\",\n strokeWidth: \"5\"\n }, /* @__PURE__ */ React.createElement(\"circle\", {\n strokeOpacity: \".5\",\n cx: \"16\",\n cy: \"16\",\n r: \"16\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M32 16c0-9.94-8.06-16-16-16\"\n }, /* @__PURE__ */ React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 16 16\",\n to: \"360 16 16\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n}\n\nexport { Oval };\n//# sourceMappingURL=Oval.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Dots(_a) {\n var _b = _a, { size, color } = _b, others = __objRest(_b, [\"size\", \"color\"]);\n const _a2 = others, { style } = _a2, rest = __objRest(_a2, [\"style\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 120 30\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: color,\n style: __spreadValues({ width: size }, style)\n }, rest), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: \"15\",\n cy: \"15\",\n r: \"15\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: \"60\",\n cy: \"15\",\n r: \"9\",\n fillOpacity: \"0.3\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"9\",\n to: \"9\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"9;15;9\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n from: \"0.5\",\n to: \"0.5\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \".5;1;.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: \"105\",\n cy: \"15\",\n r: \"15\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n}\n\nexport { Dots };\n//# sourceMappingURL=Dots.js.map\n","import React from 'react';\nimport { rem, useComponentDefaultProps, useMantineTheme, getSize } from '@mantine/styles';\nimport { Bars } from './loaders/Bars.js';\nimport { Oval } from './loaders/Oval.js';\nimport { Dots } from './loaders/Dots.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst LOADERS = {\n bars: Bars,\n oval: Oval,\n dots: Dots\n};\nconst sizes = {\n xs: rem(18),\n sm: rem(22),\n md: rem(36),\n lg: rem(44),\n xl: rem(58)\n};\nconst defaultProps = {\n size: \"md\"\n};\nfunction Loader(props) {\n const _a = useComponentDefaultProps(\"Loader\", defaultProps, props), { size, color, variant } = _a, others = __objRest(_a, [\"size\", \"color\", \"variant\"]);\n const theme = useMantineTheme();\n const defaultLoader = variant in LOADERS ? variant : theme.loader;\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n role: \"presentation\",\n component: LOADERS[defaultLoader] || LOADERS.bars,\n size: getSize({ size, sizes }),\n color: theme.fn.variant({\n variant: \"filled\",\n primaryFallback: false,\n color: color || theme.primaryColor\n }).background\n }, others));\n}\nLoader.displayName = \"@mantine/core/Loader\";\n\nexport { Loader };\n//# sourceMappingURL=Loader.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './ActionIcon.styles.js';\nimport { Loader } from '../Loader/Loader.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n color: \"gray\",\n size: \"md\",\n variant: \"subtle\"\n};\nconst _ActionIcon = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ActionIcon\", defaultProps, props), {\n className,\n color,\n children,\n radius,\n size,\n variant,\n gradient,\n disabled,\n loaderProps,\n loading,\n unstyled,\n __staticSelector\n } = _a, others = __objRest(_a, [\n \"className\",\n \"color\",\n \"children\",\n \"radius\",\n \"size\",\n \"variant\",\n \"gradient\",\n \"disabled\",\n \"loaderProps\",\n \"loading\",\n \"unstyled\",\n \"__staticSelector\"\n ]);\n const { classes, cx, theme } = useStyles({ radius, color, gradient }, { name: [\"ActionIcon\", __staticSelector], unstyled, size, variant });\n const loader = /* @__PURE__ */ React.createElement(Loader, __spreadValues({\n color: theme.fn.variant({ color, variant }).color,\n size: \"100%\",\n \"data-action-icon-loader\": true\n }, loaderProps));\n return /* @__PURE__ */ React.createElement(UnstyledButton, __spreadValues({\n className: cx(classes.root, className),\n ref,\n disabled,\n \"data-disabled\": disabled || void 0,\n \"data-loading\": loading || void 0,\n unstyled\n }, others), loading ? loader : children);\n});\n_ActionIcon.displayName = \"@mantine/core/ActionIcon\";\nconst ActionIcon = createPolymorphicComponent(_ActionIcon);\n\nexport { ActionIcon, _ActionIcon };\n//# sourceMappingURL=ActionIcon.js.map\n","import React, { useState, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useIsomorphicEffect } from '@mantine/hooks';\nimport { useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Portal(props) {\n const _a = useComponentDefaultProps(\"Portal\", {}, props), { children, target, className, innerRef } = _a, others = __objRest(_a, [\"children\", \"target\", \"className\", \"innerRef\"]);\n const theme = useMantineTheme();\n const [mounted, setMounted] = useState(false);\n const ref = useRef();\n useIsomorphicEffect(() => {\n setMounted(true);\n ref.current = !target ? document.createElement(\"div\") : typeof target === \"string\" ? document.querySelector(target) : target;\n if (!target) {\n document.body.appendChild(ref.current);\n }\n return () => {\n !target && document.body.removeChild(ref.current);\n };\n }, [target]);\n if (!mounted) {\n return null;\n }\n return createPortal(/* @__PURE__ */ React.createElement(\"div\", __spreadProps(__spreadValues({\n className,\n dir: theme.dir\n }, others), {\n ref: innerRef\n }), children), ref.current);\n}\nPortal.displayName = \"@mantine/core/Portal\";\n\nexport { Portal };\n//# sourceMappingURL=Portal.js.map\n","import React from 'react';\nimport { Portal } from './Portal.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction OptionalPortal(_a) {\n var _b = _a, { withinPortal = true, children } = _b, others = __objRest(_b, [\"withinPortal\", \"children\"]);\n if (withinPortal) {\n return /* @__PURE__ */ React.createElement(Portal, __spreadValues({}, others), children);\n }\n return /* @__PURE__ */ React.createElement(React.Fragment, null, children);\n}\nOptionalPortal.displayName = \"@mantine/core/OptionalPortal\";\n\nexport { OptionalPortal };\n//# sourceMappingURL=OptionalPortal.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getVariantStyles({ variant, color, theme }) {\n if (variant === \"filled\") {\n const colors = theme.fn.variant({ variant: \"filled\", color });\n return {\n backgroundColor: colors.background,\n color: theme.white\n };\n }\n if (variant === \"outline\") {\n const colors = theme.fn.variant({ variant: \"outline\", color });\n return {\n color: colors.color,\n borderColor: colors.border,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white\n };\n }\n if (variant === \"light\") {\n const colors = theme.fn.variant({ variant: \"light\", color });\n return {\n backgroundColor: colors.background,\n color: colors.color\n };\n }\n return null;\n}\nvar useStyles = createStyles((theme, { radius, color }, { variant }) => ({\n root: __spreadValues(__spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n position: \"relative\",\n overflow: \"hidden\",\n paddingTop: theme.spacing.sm,\n paddingBottom: theme.spacing.sm,\n paddingLeft: theme.spacing.md,\n paddingRight: theme.spacing.sm,\n borderRadius: theme.fn.radius(radius),\n border: `${rem(1)} solid transparent`\n }), getVariantStyles({ variant, color, theme })),\n wrapper: {\n display: \"flex\"\n },\n body: {\n flex: 1\n },\n title: {\n boxSizing: \"border-box\",\n margin: 0,\n marginBottom: theme.spacing.xs,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n lineHeight: theme.lineHeight,\n fontSize: theme.fontSizes.sm,\n fontWeight: 700,\n \"&[data-with-close-button]\": {\n paddingRight: theme.spacing.md\n }\n },\n label: {\n display: \"block\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n },\n icon: {\n lineHeight: 1,\n width: rem(20),\n height: rem(20),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n marginRight: theme.spacing.md,\n marginTop: 1\n },\n message: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n lineHeight: theme.lineHeight,\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n fontSize: theme.fontSizes.sm,\n color: variant === \"filled\" ? theme.white : theme.colorScheme === \"dark\" ? variant === \"light\" ? theme.white : theme.colors.dark[0] : theme.black\n }),\n closeButton: {\n width: rem(10),\n height: rem(10),\n color: variant === \"filled\" ? theme.white : theme.colorScheme === \"dark\" ? variant === \"light\" ? theme.white : theme.colors.dark[0] : theme.black\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Alert.styles.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction CloseIcon(props) {\n const _a = props, { width, height, style } = _a, others = __objRest(_a, [\"width\", \"height\", \"style\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: __spreadValues({ width, height }, style)\n }, others), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }));\n}\nCloseIcon.displayName = \"@mantine/core/CloseIcon\";\n\nexport { CloseIcon };\n//# sourceMappingURL=CloseIcon.js.map\n","import React, { forwardRef } from 'react';\nimport { rem, useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { ActionIcon } from '../ActionIcon/ActionIcon.js';\nimport { CloseIcon } from './CloseIcon.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst iconSizes = {\n xs: rem(12),\n sm: rem(16),\n md: rem(20),\n lg: rem(28),\n xl: rem(34)\n};\nconst defaultProps = {\n size: \"sm\"\n};\nconst _CloseButton = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"CloseButton\", defaultProps, props), { iconSize, size, children } = _a, others = __objRest(_a, [\"iconSize\", \"size\", \"children\"]);\n const _iconSize = rem(iconSize || iconSizes[size]);\n return /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({\n ref,\n __staticSelector: \"CloseButton\",\n size\n }, others), children || /* @__PURE__ */ React.createElement(CloseIcon, {\n width: _iconSize,\n height: _iconSize\n }));\n});\n_CloseButton.displayName = \"@mantine/core/CloseButton\";\nconst CloseButton = createPolymorphicComponent(_CloseButton);\n\nexport { CloseButton, _CloseButton };\n//# sourceMappingURL=CloseButton.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useId } from '@mantine/hooks';\nimport useStyles from './Alert.styles.js';\nimport { Box } from '../Box/Box.js';\nimport { CloseButton } from '../CloseButton/CloseButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n variant: \"light\"\n};\nconst Alert = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Alert\", defaultProps, props), {\n id,\n className,\n title,\n variant,\n children,\n color,\n classNames,\n icon,\n styles,\n onClose,\n radius,\n withCloseButton,\n closeButtonLabel,\n unstyled\n } = _a, others = __objRest(_a, [\n \"id\",\n \"className\",\n \"title\",\n \"variant\",\n \"children\",\n \"color\",\n \"classNames\",\n \"icon\",\n \"styles\",\n \"onClose\",\n \"radius\",\n \"withCloseButton\",\n \"closeButtonLabel\",\n \"unstyled\"\n ]);\n const { classes, cx } = useStyles({ color, radius }, { classNames, styles, unstyled, variant, name: \"Alert\" });\n const rootId = useId(id);\n const titleId = title && `${rootId}-title`;\n const bodyId = `${rootId}-body`;\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n id: rootId,\n role: \"alert\",\n \"aria-labelledby\": titleId,\n \"aria-describedby\": bodyId,\n className: cx(classes.root, classes[variant], className),\n ref\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.wrapper\n }, icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.icon\n }, icon), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.body\n }, title && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.title,\n \"data-with-close-button\": withCloseButton || void 0\n }, /* @__PURE__ */ React.createElement(\"span\", {\n id: titleId,\n className: classes.label\n }, title)), /* @__PURE__ */ React.createElement(\"div\", {\n id: bodyId,\n className: classes.message\n }, children)), withCloseButton && /* @__PURE__ */ React.createElement(CloseButton, {\n className: classes.closeButton,\n onClick: onClose,\n variant: \"transparent\",\n size: 16,\n iconSize: 16,\n \"aria-label\": closeButtonLabel\n })));\n});\nAlert.displayName = \"@mantine/core/Alert\";\n\nexport { Alert };\n//# sourceMappingURL=Alert.js.map\n","import { createStyles, getSize } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getTextDecoration({\n underline,\n strikethrough\n}) {\n const styles = [];\n if (underline) {\n styles.push(\"underline\");\n }\n if (strikethrough) {\n styles.push(\"line-through\");\n }\n return styles.length > 0 ? styles.join(\" \") : \"none\";\n}\nfunction getTextColor({ theme, color }) {\n if (color === \"dimmed\") {\n return theme.fn.dimmed();\n }\n return typeof color === \"string\" && (color in theme.colors || color.split(\".\")[0] in theme.colors) ? theme.fn.variant({ variant: \"filled\", color }).background : color || \"inherit\";\n}\nfunction getLineClamp(lineClamp) {\n if (typeof lineClamp === \"number\") {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: lineClamp,\n WebkitBoxOrient: \"vertical\"\n };\n }\n return null;\n}\nfunction getTruncate({ theme, truncate }) {\n if (truncate === \"start\") {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n direction: theme.dir === \"ltr\" ? \"rtl\" : \"ltr\",\n textAlign: theme.dir === \"ltr\" ? \"right\" : \"left\"\n };\n }\n if (truncate) {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n }\n return null;\n}\nvar useStyles = createStyles((theme, {\n color,\n lineClamp,\n truncate,\n inline,\n inherit,\n underline,\n gradient,\n weight,\n transform,\n align,\n strikethrough,\n italic\n}, { size }) => {\n const colors = theme.fn.variant({ variant: \"gradient\", gradient });\n return {\n root: __spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, theme.fn.fontStyles()), theme.fn.focusStyles()), getLineClamp(lineClamp)), getTruncate({ theme, truncate })), {\n color: getTextColor({ color, theme }),\n fontFamily: inherit ? \"inherit\" : theme.fontFamily,\n fontSize: inherit || size === void 0 ? \"inherit\" : getSize({ size, sizes: theme.fontSizes }),\n lineHeight: inherit ? \"inherit\" : inline ? 1 : theme.lineHeight,\n textDecoration: getTextDecoration({ underline, strikethrough }),\n WebkitTapHighlightColor: \"transparent\",\n fontWeight: inherit ? \"inherit\" : weight,\n textTransform: transform,\n textAlign: align,\n fontStyle: italic ? \"italic\" : void 0\n }),\n gradient: {\n backgroundImage: colors.background,\n WebkitBackgroundClip: \"text\",\n WebkitTextFillColor: \"transparent\"\n }\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=Text.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Text.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n variant: \"text\"\n};\nconst _Text = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Text\", defaultProps, props), {\n className,\n size,\n weight,\n transform,\n color,\n align,\n variant,\n lineClamp,\n truncate,\n gradient,\n inline,\n inherit,\n underline,\n strikethrough,\n italic,\n classNames,\n styles,\n unstyled,\n span,\n __staticSelector\n } = _a, others = __objRest(_a, [\n \"className\",\n \"size\",\n \"weight\",\n \"transform\",\n \"color\",\n \"align\",\n \"variant\",\n \"lineClamp\",\n \"truncate\",\n \"gradient\",\n \"inline\",\n \"inherit\",\n \"underline\",\n \"strikethrough\",\n \"italic\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"span\",\n \"__staticSelector\"\n ]);\n const { classes, cx } = useStyles({\n color,\n lineClamp,\n truncate,\n inline,\n inherit,\n underline,\n strikethrough,\n italic,\n weight,\n transform,\n align,\n gradient\n }, { unstyled, name: __staticSelector || \"Text\", variant, size });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, { [classes.gradient]: variant === \"gradient\" }, className),\n component: span ? \"span\" : \"div\"\n }, others));\n});\n_Text.displayName = \"@mantine/core/Text\";\nconst Text = createPolymorphicComponent(_Text);\n\nexport { Text, _Text };\n//# sourceMappingURL=Text.js.map\n","import { createStyles, rem, getSize } from '@mantine/styles';\n\nconst sizes = {\n xs: rem(1),\n sm: rem(2),\n md: rem(3),\n lg: rem(4),\n xl: rem(5)\n};\nfunction getColor(theme, color) {\n const themeColor = theme.fn.variant({ variant: \"outline\", color }).border;\n return typeof color === \"string\" && (color in theme.colors || color.split(\".\")[0] in theme.colors) ? themeColor : color === void 0 ? theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[4] : color;\n}\nvar useStyles = createStyles((theme, { color }, { size, variant }) => ({\n root: {},\n withLabel: {\n borderTop: \"0 !important\"\n },\n left: {\n \"&::before\": {\n display: \"none\"\n }\n },\n right: {\n \"&::after\": {\n display: \"none\"\n }\n },\n label: {\n display: \"flex\",\n alignItems: \"center\",\n \"&::before\": {\n content: '\"\"',\n flex: 1,\n height: rem(1),\n borderTop: `${getSize({ size, sizes })} ${variant} ${getColor(theme, color)}`,\n marginRight: theme.spacing.xs\n },\n \"&::after\": {\n content: '\"\"',\n flex: 1,\n borderTop: `${getSize({ size, sizes })} ${variant} ${getColor(theme, color)}`,\n marginLeft: theme.spacing.xs\n }\n },\n labelDefaultStyles: {\n color: color === \"dark\" ? theme.colors.dark[1] : theme.fn.themeColor(color, theme.colorScheme === \"dark\" ? 5 : theme.fn.primaryShade(), false)\n },\n horizontal: {\n border: 0,\n borderTopWidth: rem(getSize({ size, sizes })),\n borderTopColor: getColor(theme, color),\n borderTopStyle: variant,\n margin: 0\n },\n vertical: {\n border: 0,\n alignSelf: \"stretch\",\n height: \"auto\",\n borderLeftWidth: rem(getSize({ size, sizes })),\n borderLeftColor: getColor(theme, color),\n borderLeftStyle: variant\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Divider.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps, rem } from '@mantine/styles';\nimport useStyles from './Divider.styles.js';\nimport { Box } from '../Box/Box.js';\nimport { Text } from '../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n orientation: \"horizontal\",\n size: \"xs\",\n labelPosition: \"left\",\n variant: \"solid\"\n};\nconst Divider = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Divider\", defaultProps, props), {\n className,\n color,\n orientation,\n size,\n label,\n labelPosition,\n labelProps,\n variant,\n styles,\n classNames,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"color\",\n \"orientation\",\n \"size\",\n \"label\",\n \"labelPosition\",\n \"labelProps\",\n \"variant\",\n \"styles\",\n \"classNames\",\n \"unstyled\"\n ]);\n const { classes, cx } = useStyles({ color }, { classNames, styles, unstyled, name: \"Divider\", variant, size });\n const vertical = orientation === \"vertical\";\n const horizontal = orientation === \"horizontal\";\n const withLabel = !!label && horizontal;\n const useLabelDefaultStyles = !(labelProps == null ? void 0 : labelProps.color);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, {\n [classes.vertical]: vertical,\n [classes.horizontal]: horizontal,\n [classes.withLabel]: withLabel\n }, className),\n role: \"separator\"\n }, others), withLabel && /* @__PURE__ */ React.createElement(Text, __spreadProps(__spreadValues({}, labelProps), {\n size: (labelProps == null ? void 0 : labelProps.size) || \"xs\",\n mt: rem(2),\n className: cx(classes.label, classes[labelPosition], {\n [classes.labelDefaultStyles]: useLabelDefaultStyles\n })\n }), label));\n});\nDivider.displayName = \"@mantine/core/Divider\";\n\nexport { Divider };\n//# sourceMappingURL=Divider.js.map\n","function t(t){return t.split(\"-\")[1]}function e(t){return\"y\"===t?\"height\":\"width\"}function n(t){return t.split(\"-\")[0]}function o(t){return[\"top\",\"bottom\"].includes(n(t))?\"x\":\"y\"}function i(i,r,a){let{reference:l,floating:s}=i;const c=l.x+l.width/2-s.width/2,f=l.y+l.height/2-s.height/2,m=o(r),u=e(m),g=l[u]/2-s[u]/2,d=\"x\"===m;let p;switch(n(r)){case\"top\":p={x:c,y:l.y-s.height};break;case\"bottom\":p={x:c,y:l.y+l.height};break;case\"right\":p={x:l.x+l.width,y:f};break;case\"left\":p={x:l.x-s.width,y:f};break;default:p={x:l.x,y:l.y}}switch(t(r)){case\"start\":p[m]-=g*(a&&d?-1:1);break;case\"end\":p[m]+=g*(a&&d?-1:1)}return p}const r=async(t,e,n)=>{const{placement:o=\"bottom\",strategy:r=\"absolute\",middleware:a=[],platform:l}=n,s=a.filter(Boolean),c=await(null==l.isRTL?void 0:l.isRTL(e));let f=await l.getElementRects({reference:t,floating:e,strategy:r}),{x:m,y:u}=i(f,o,c),g=o,d={},p=0;for(let n=0;n({name:\"arrow\",options:n,async fn(i){const{element:r,padding:l=0}=n||{},{x:s,y:c,placement:f,rects:u,platform:g,elements:d}=i;if(null==r)return{};const p=a(l),h={x:s,y:c},y=o(f),x=e(y),w=await g.getDimensions(r),v=\"y\"===y,b=v?\"top\":\"left\",A=v?\"bottom\":\"right\",R=v?\"clientHeight\":\"clientWidth\",P=u.reference[x]+u.reference[y]-h[y]-u.floating[x],E=h[y]-u.reference[y],T=await(null==g.getOffsetParent?void 0:g.getOffsetParent(r));let D=T?T[R]:0;D&&await(null==g.isElement?void 0:g.isElement(T))||(D=d.floating[R]||u.floating[x]);const L=P/2-E/2,k=p[b],O=D-w[x]-p[A],B=D/2-w[x]/2+L,C=m(k,B,O),H=null!=t(f)&&B!=C&&u.reference[x]/2-(Bt.concat(e,e+\"-start\",e+\"-end\")),[]),p={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function h(t){return t.replace(/left|right|bottom|top/g,(t=>p[t]))}function y(n,i,r){void 0===r&&(r=!1);const a=t(n),l=o(n),s=e(l);let c=\"x\"===l?a===(r?\"end\":\"start\")?\"right\":\"left\":\"start\"===a?\"bottom\":\"top\";return i.reference[s]>i.floating[s]&&(c=h(c)),{main:c,cross:h(c)}}const x={start:\"end\",end:\"start\"};function w(t){return t.replace(/start|end/g,(t=>x[t]))}const v=function(e){return void 0===e&&(e={}),{name:\"autoPlacement\",options:e,async fn(o){var i,r,a;const{rects:l,middlewareData:c,placement:f,platform:m,elements:u}=o,{crossAxis:g=!1,alignment:p,allowedPlacements:h=d,autoAlignment:x=!0,...v}=e,b=void 0!==p||h===d?function(e,o,i){return(e?[...i.filter((n=>t(n)===e)),...i.filter((n=>t(n)!==e))]:i.filter((t=>n(t)===t))).filter((n=>!e||t(n)===e||!!o&&w(n)!==n))}(p||null,x,h):h,A=await s(o,v),R=(null==(i=c.autoPlacement)?void 0:i.index)||0,P=b[R];if(null==P)return{};const{main:E,cross:T}=y(P,l,await(null==m.isRTL?void 0:m.isRTL(u.floating)));if(f!==P)return{reset:{placement:b[0]}};const D=[A[n(P)],A[E],A[T]],L=[...(null==(r=c.autoPlacement)?void 0:r.overflows)||[],{placement:P,overflows:D}],k=b[R+1];if(k)return{data:{index:R+1,overflows:L},reset:{placement:k}};const O=L.map((e=>{const n=t(e.placement);return[e.placement,n&&g?e.overflows.slice(0,2).reduce(((t,e)=>t+e),0):e.overflows[0],e.overflows]})).sort(((t,e)=>t[1]-e[1])),B=(null==(a=O.filter((e=>e[2].slice(0,t(e[0])?2:3).every((t=>t<=0))))[0])?void 0:a[0])||O[0][0];return B!==f?{data:{index:R+1,overflows:L},reset:{placement:B}}:{}}}};const b=function(e){return void 0===e&&(e={}),{name:\"flip\",options:e,async fn(o){var i;const{placement:r,middlewareData:a,rects:l,initialPlacement:c,platform:f,elements:m}=o,{mainAxis:u=!0,crossAxis:g=!0,fallbackPlacements:d,fallbackStrategy:p=\"bestFit\",fallbackAxisSideDirection:x=\"none\",flipAlignment:v=!0,...b}=e,A=n(r),R=n(c)===c,P=await(null==f.isRTL?void 0:f.isRTL(m.floating)),E=d||(R||!v?[h(c)]:function(t){const e=h(t);return[w(t),e,w(e)]}(c));d||\"none\"===x||E.push(...function(e,o,i,r){const a=t(e);let l=function(t,e,n){const o=[\"left\",\"right\"],i=[\"right\",\"left\"],r=[\"top\",\"bottom\"],a=[\"bottom\",\"top\"];switch(t){case\"top\":case\"bottom\":return n?e?i:o:e?o:i;case\"left\":case\"right\":return e?r:a;default:return[]}}(n(e),\"start\"===i,r);return a&&(l=l.map((t=>t+\"-\"+a)),o&&(l=l.concat(l.map(w)))),l}(c,v,x,P));const T=[c,...E],D=await s(o,b),L=[];let k=(null==(i=a.flip)?void 0:i.overflows)||[];if(u&&L.push(D[A]),g){const{main:t,cross:e}=y(r,l,P);L.push(D[t],D[e])}if(k=[...k,{placement:r,overflows:L}],!L.every((t=>t<=0))){var O,B;const t=((null==(O=a.flip)?void 0:O.index)||0)+1,e=T[t];if(e)return{data:{index:t,overflows:k},reset:{placement:e}};let n=null==(B=k.filter((t=>t.overflows[0]<=0)).sort(((t,e)=>t.overflows[1]-e.overflows[1]))[0])?void 0:B.placement;if(!n)switch(p){case\"bestFit\":{var C;const t=null==(C=k.map((t=>[t.placement,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])?void 0:C[0];t&&(n=t);break}case\"initialPlacement\":n=c}if(r!==n)return{reset:{placement:n}}}return{}}}};function A(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function R(t){return g.some((e=>t[e]>=0))}const P=function(t){return void 0===t&&(t={}),{name:\"hide\",options:t,async fn(e){const{strategy:n=\"referenceHidden\",...o}=t,{rects:i}=e;switch(n){case\"referenceHidden\":{const t=A(await s(e,{...o,elementContext:\"reference\"}),i.reference);return{data:{referenceHiddenOffsets:t,referenceHidden:R(t)}}}case\"escaped\":{const t=A(await s(e,{...o,altBoundary:!0}),i.floating);return{data:{escapedOffsets:t,escaped:R(t)}}}default:return{}}}}};function E(t){const e=c(...t.map((t=>t.left))),n=c(...t.map((t=>t.top)));return{x:e,y:n,width:f(...t.map((t=>t.right)))-e,height:f(...t.map((t=>t.bottom)))-n}}const T=function(t){return void 0===t&&(t={}),{name:\"inline\",options:t,async fn(e){const{placement:i,elements:r,rects:s,platform:m,strategy:u}=e,{padding:g=2,x:d,y:p}=t,h=Array.from(await(null==m.getClientRects?void 0:m.getClientRects(r.reference))||[]),y=function(t){const e=t.slice().sort(((t,e)=>t.y-e.y)),n=[];let o=null;for(let t=0;to.height/2?n.push([i]):n[n.length-1].push(i),o=i}return n.map((t=>l(E(t))))}(h),x=l(E(h)),w=a(g);const v=await m.getElementRects({reference:{getBoundingClientRect:function(){if(2===y.length&&y[0].left>y[1].right&&null!=d&&null!=p)return y.find((t=>d>t.left-w.left&&dt.top-w.top&&p=2){if(\"x\"===o(i)){const t=y[0],e=y[y.length-1],o=\"top\"===n(i),r=t.top,a=e.bottom,l=o?t.left:e.left,s=o?t.right:e.right;return{top:r,bottom:a,left:l,right:s,width:s-l,height:a-r,x:l,y:r}}const t=\"left\"===n(i),e=f(...y.map((t=>t.right))),r=c(...y.map((t=>t.left))),a=y.filter((n=>t?n.left===r:n.right===e)),l=a[0].top,s=a[a.length-1].bottom;return{top:l,bottom:s,left:r,right:e,width:e-r,height:s-l,x:r,y:l}}return x}},floating:r.floating,strategy:u});return s.reference.x!==v.reference.x||s.reference.y!==v.reference.y||s.reference.width!==v.reference.width||s.reference.height!==v.reference.height?{reset:{rects:v}}:{}}}};const D=function(e){return void 0===e&&(e=0),{name:\"offset\",options:e,async fn(i){const{x:r,y:a}=i,l=await async function(e,i){const{placement:r,platform:a,elements:l}=e,s=await(null==a.isRTL?void 0:a.isRTL(l.floating)),c=n(r),f=t(r),m=\"x\"===o(r),u=[\"left\",\"top\"].includes(c)?-1:1,g=s&&m?-1:1,d=\"function\"==typeof i?i(e):i;let{mainAxis:p,crossAxis:h,alignmentAxis:y}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return f&&\"number\"==typeof y&&(h=\"end\"===f?-1*y:y),m?{x:h*g,y:p*u}:{x:p*u,y:h*g}}(i,e);return{x:r+l.x,y:a+l.y,data:l}}}};function L(t){return\"x\"===t?\"y\":\"x\"}const k=function(t){return void 0===t&&(t={}),{name:\"shift\",options:t,async fn(e){const{x:i,y:r,placement:a}=e,{mainAxis:l=!0,crossAxis:c=!1,limiter:f={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...u}=t,g={x:i,y:r},d=await s(e,u),p=o(n(a)),h=L(p);let y=g[p],x=g[h];if(l){const t=\"y\"===p?\"bottom\":\"right\";y=m(y+d[\"y\"===p?\"top\":\"left\"],y,y-d[t])}if(c){const t=\"y\"===h?\"bottom\":\"right\";x=m(x+d[\"y\"===h?\"top\":\"left\"],x,x-d[t])}const w=f.fn({...e,[p]:y,[h]:x});return{...w,data:{x:w.x-i,y:w.y-r}}}}},O=function(t){return void 0===t&&(t={}),{options:t,fn(e){const{x:i,y:r,placement:a,rects:l,middlewareData:s}=e,{offset:c=0,mainAxis:f=!0,crossAxis:m=!0}=t,u={x:i,y:r},g=o(a),d=L(g);let p=u[g],h=u[d];const y=\"function\"==typeof c?c(e):c,x=\"number\"==typeof y?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(f){const t=\"y\"===g?\"height\":\"width\",e=l.reference[g]-l.floating[t]+x.mainAxis,n=l.reference[g]+l.reference[t]-x.mainAxis;pn&&(p=n)}if(m){var w,v;const t=\"y\"===g?\"width\":\"height\",e=[\"top\",\"left\"].includes(n(a)),o=l.reference[d]-l.floating[t]+(e&&(null==(w=s.offset)?void 0:w[d])||0)+(e?0:x.crossAxis),i=l.reference[d]+l.reference[t]+(e?0:(null==(v=s.offset)?void 0:v[d])||0)-(e?x.crossAxis:0);hi&&(h=i)}return{[g]:p,[d]:h}}}},B=function(e){return void 0===e&&(e={}),{name:\"size\",options:e,async fn(i){const{placement:r,rects:a,platform:l,elements:m}=i,{apply:u=(()=>{}),...g}=e,d=await s(i,g),p=n(r),h=t(r),y=\"x\"===o(r),{width:x,height:w}=a.floating;let v,b;\"top\"===p||\"bottom\"===p?(v=p,b=h===(await(null==l.isRTL?void 0:l.isRTL(m.floating))?\"start\":\"end\")?\"left\":\"right\"):(b=p,v=\"end\"===h?\"top\":\"bottom\");const A=w-d[v],R=x-d[b],P=!i.middlewareData.shift;let E=A,T=R;if(y){const t=x-d.left-d.right;T=h||P?c(R,t):t}else{const t=w-d.top-d.bottom;E=h||P?c(A,t):t}if(P&&!h){const t=f(d.left,0),e=f(d.right,0),n=f(d.top,0),o=f(d.bottom,0);y?T=x-2*(0!==t||0!==e?t+e:f(d.left,d.right)):E=w-2*(0!==n||0!==o?n+o:f(d.top,d.bottom))}await u({...i,availableWidth:T,availableHeight:E});const D=await l.getDimensions(m.floating);return x!==D.width||w!==D.height?{reset:{rects:!0}}:{}}}};export{u as arrow,v as autoPlacement,r as computePosition,s as detectOverflow,b as flip,P as hide,T as inline,O as limitShift,D as offset,l as rectToClientRect,k as shift,B as size};\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}function i(t){return t instanceof n(t).Node}function r(t){return i(t)?(t.nodeName||\"\").toLowerCase():\"\"}let l;function c(){if(l)return l;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(l=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),l):navigator.userAgent}function s(t){return t instanceof n(t).HTMLElement}function f(t){return t instanceof n(t).Element}function u(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function a(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function d(t){return[\"table\",\"td\",\"th\"].includes(r(t))}function h(t){const e=/firefox/i.test(c()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function p(){return/^((?!chrome|android).)*safari/i.test(c())}function g(t){return[\"html\",\"body\",\"#document\"].includes(r(t))}const m=Math.min,y=Math.max,x=Math.round;function w(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=s(t),l=r?t.offsetWidth:n,c=r?t.offsetHeight:i,f=x(n)!==l||x(i)!==c;return f&&(n=l,i=c),{width:n,height:i,fallback:f}}function v(t){return f(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!s(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=w(e);let l=(r?x(n.width):n.width)/o,c=(r?x(n.height):n.height)/i;return l&&Number.isFinite(l)||(l=1),c&&Number.isFinite(c)||(c=1),{x:l,y:c}}function E(e,o,i,r){var l,c;void 0===o&&(o=!1),void 0===i&&(i=!1);const s=e.getBoundingClientRect(),u=v(e);let a=b;o&&(r?f(r)&&(a=L(r)):a=L(e));const d=u?n(u):window,h=p()&&i;let g=(s.left+(h&&(null==(l=d.visualViewport)?void 0:l.offsetLeft)||0))/a.x,m=(s.top+(h&&(null==(c=d.visualViewport)?void 0:c.offsetTop)||0))/a.y,y=s.width/a.x,x=s.height/a.y;if(u){const t=n(u),e=r&&f(r)?n(r):r;let o=t.frameElement;for(;o&&r&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,g*=t.x,m*=t.y,y*=t.x,x*=t.y,g+=e.x,m+=e.y,o=n(o).frameElement}}return t({width:y,height:x,x:g,y:m})}function T(t){return((i(t)?t.ownerDocument:t.document)||window.document).documentElement}function R(t){return f(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(T(t)).left+R(t).scrollLeft}function F(t){if(\"html\"===r(t))return t;const e=t.assignedSlot||t.parentNode||u(t)&&t.host||T(t);return u(e)?e.host:e}function S(t){const e=F(t);return g(e)?e.ownerDocument.body:s(e)&&a(e)?e:S(e)}function W(t,e){var o;void 0===e&&(e=[]);const i=S(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],a(i)?i:[]):e.concat(i,W(i))}function D(e,i,r){let l;if(\"viewport\"===i)l=function(t,e){const o=n(t),i=T(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=p();(!t||t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,r);else if(\"document\"===i)l=function(t){const e=T(t),n=R(t),i=t.ownerDocument.body,r=y(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),l=y(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let c=-n.scrollLeft+C(t);const s=-n.scrollTop;return\"rtl\"===o(i).direction&&(c+=y(e.clientWidth,i.clientWidth)-r),{width:r,height:l,x:c,y:s}}(T(e));else if(f(i))l=function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=s(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,r);else{const t={...i};if(p()){var c,u;const o=n(e);t.x-=(null==(c=o.visualViewport)?void 0:c.offsetLeft)||0,t.y-=(null==(u=o.visualViewport)?void 0:u.offsetTop)||0}l=t}return t(l)}function V(t,e){const n=F(t);return!(n===e||!f(n)||g(n))&&(\"fixed\"===o(n).position||V(n,e))}function A(t,e){return s(t)&&\"fixed\"!==o(t).position?e?e(t):t.offsetParent:null}function H(t,e){const i=n(t);if(!s(t))return i;let l=A(t,e);for(;l&&d(l)&&\"static\"===o(l).position;)l=A(l,e);return l&&(\"html\"===r(l)||\"body\"===r(l)&&\"static\"===o(l).position&&!h(l))?i:l||function(t){let e=F(t);for(;s(e)&&!g(e);){if(h(e))return e;e=F(e)}return null}(t)||i}function O(t,e,n){const o=s(e),i=T(e),l=E(t,!0,\"fixed\"===n,e);let c={scrollLeft:0,scrollTop:0};const f={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==r(e)||a(i))&&(c=R(e)),s(e)){const t=E(e,!0);f.x=t.x+e.clientLeft,f.y=t.y+e.clientTop}else i&&(f.x=C(i));return{x:l.left+c.scrollLeft-f.x,y:l.top+c.scrollTop-f.y,width:l.width,height:l.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:l}=t;const c=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=W(t).filter((t=>f(t)&&\"body\"!==r(t))),l=null;const c=\"fixed\"===o(t).position;let s=c?F(t):t;for(;f(s)&&!g(s);){const e=o(s),n=h(s);n||\"fixed\"!==e.position||(l=null),(c?!n&&!l:!n&&\"static\"===e.position&&l&&[\"absolute\",\"fixed\"].includes(l.position)||a(s)&&!n&&V(t,s))?i=i.filter((t=>t!==s)):l=e,s=F(s)}return e.set(t,i),i}(e,this._c):[].concat(n),s=[...c,i],u=s[0],d=s.reduce(((t,n)=>{const o=D(e,n,l);return t.top=y(o.top,t.top),t.right=m(o.right,t.right),t.bottom=m(o.bottom,t.bottom),t.left=y(o.left,t.left),t}),D(e,u,l));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=s(n),l=T(n);if(n===l)return e;let c={scrollLeft:0,scrollTop:0},f={x:1,y:1};const u={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==r(n)||a(l))&&(c=R(n)),s(n))){const t=E(n);f=L(n),u.x=t.x+n.clientLeft,u.y=t.y+n.clientTop}return{width:e.width*f.x,height:e.height*f.y,x:e.x*f.x-c.scrollLeft*f.x+u.x,y:e.y*f.y-c.scrollTop*f.y+u.y}},isElement:f,getDimensions:function(t){return w(t)},getOffsetParent:H,getDocumentElement:T,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i||r?[...f(t)?W(t):t.contextElement?W(t.contextElement):[],...W(e)]:[];s.forEach((t=>{const e=!f(t)&&t.toString().includes(\"V\");!i||c&&!e||t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;l&&(a=new ResizeObserver((()=>{n()})),f(t)&&!c&&a.observe(t),f(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e));let d=c?E(t):null;return c&&function e(){const o=E(t);!d||o.x===d.x&&o.y===d.y&&o.width===d.width&&o.height===d.height||n();d=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;s.forEach((t=>{i&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const k=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,k as computePosition,W as getOverflowAncestors,P as platform};\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * A data provider that provides data to position an inner element of the\n * floating element (usually a triangle or caret) so that it is centered to the\n * reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n const {\n element,\n padding\n } = options;\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(args);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(args);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const [reference, _setReference] = React.useState(null);\n const [floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (referenceRef.current !== node) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (floatingRef.current !== node) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (reference && floating) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(reference, floating, update);\n } else {\n update();\n }\n }\n }, [reference, floating, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference,\n floating\n }), [reference, floating]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, elements, setReference, setFloating]);\n}\n\nexport { arrow, useFloating };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { hideOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\nimport { getOverflowAncestors, offset, detectOverflow, useFloating as useFloating$1 } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n map.set(event, (map.get(event) || []).filter(l => l !== listener));\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nconst useFloatingNodeId = customParentId => {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n};\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingNode = _ref => {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n};\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingTree = _ref2 => {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n};\n\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n return value ? value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n return value ? value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = 'data-floating-ui-safe-polygon';\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nconst useHover = function (context, _temp) {\n let {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = _temp === void 0 ? {} : _temp;\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave() {\n if (isHoverOpen()) {\n onOpenChange(false);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n dataRef.current.openEvent = event;\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true);\n }, openDelay);\n } else {\n onOpenChange(true);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n closeWithDelay();\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove() {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave() {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n};\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n React.useEffect(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n React.useEffect(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n React.useEffect(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement$1(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n }) || [];\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n }) || [];\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\n\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement$1(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet activeElement;\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n activeElement = event.target;\n clearTimeout(timeoutId);\n }\n}\nfunction isTabFocus(event) {\n const result = activeElement === event.relatedTarget;\n activeElement = event.relatedTarget;\n clearTimeout(timeoutId);\n return result;\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const onFocus = useEvent(props.onFocus);\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n ref: ref,\n tabIndex: 0\n // Role is only for VoiceOver\n ,\n role: role,\n \"aria-hidden\": role ? undefined : true,\n \"data-floating-ui-focus-guard\": \"\",\n style: HIDDEN_STYLES,\n onFocus: event => {\n if (isSafari() && isMac() && !isTabFocus(event)) {\n // On macOS we need to wait a little bit before moving\n // focus again.\n event.persist();\n timeoutId = window.setTimeout(() => {\n onFocus(event);\n }, 50);\n } else {\n onFocus(event);\n }\n }\n }));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingPortalNode = function (_temp) {\n let {\n id,\n enabled = true\n } = _temp === void 0 ? {} : _temp;\n const [portalEl, setPortalEl] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n index(() => {\n if (!enabled) {\n return;\n }\n const rootNode = id ? document.getElementById(id) : null;\n if (rootNode) {\n rootNode.setAttribute('data-floating-ui-portal', '');\n setPortalEl(rootNode);\n } else {\n const newPortalEl = document.createElement('div');\n if (id !== '') {\n newPortalEl.id = id || uniqueId;\n }\n newPortalEl.setAttribute('data-floating-ui-portal', '');\n setPortalEl(newPortalEl);\n const container = (portalContext == null ? void 0 : portalContext.portalNode) || document.body;\n container.appendChild(newPortalEl);\n return () => {\n container.removeChild(newPortalEl);\n };\n }\n }, [id, portalContext, uniqueId, enabled]);\n return portalEl;\n};\n\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nconst FloatingPortal = _ref => {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n enabled: !root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal && !!(root || portalNode) && preserveTabOrder;\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), root ? /*#__PURE__*/createPortal(children, root) : portalNode ? /*#__PURE__*/createPortal(children, portalNode) : null, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false));\n }\n }\n }));\n};\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(_ref) {\n let {\n context,\n children,\n order = ['content'],\n guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = _ref;\n const {\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const orderRef = useLatestRef(order);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const [tabbableContentLength, setTabbableContentLength] = React.useState(null);\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (!modal) {\n return;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (getTabbableContent().length === 0 && !isTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (!closeOnFocusOut) {\n return;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute('data-floating-ui-focus-guard') || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n // On iOS VoiceOver, dismissing the nested submenu will cause the\n // first item of the list to receive focus. Delaying it appears to fix\n // the issue.\n setTimeout(() => onOpenChange(false));\n }\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll('[data-floating-ui-portal]')) || []);\n function getDismissButtons() {\n return [startDismissButtonRef.current, endDismissButtonRef.current].filter(Boolean);\n }\n if (floating && modal) {\n const insideNodes = [floating, ...portalNodes, ...getDismissButtons()];\n const cleanup = hideOthers(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes);\n return () => {\n cleanup();\n };\n }\n }, [domReference, floating, modal, orderRef, portalContext, isTypeableCombobox]);\n React.useEffect(() => {\n if (modal && !guards && floating) {\n const tabIndexValues = [];\n const options = getTabbableOptions();\n const allTabbable = tabbable(getDocument(floating).body, options);\n const floatingTabbable = getTabbableElements();\n\n // Exclude all tabbable elements that are part of the order\n const elements = allTabbable.filter(el => !floatingTabbable.includes(el));\n elements.forEach((el, i) => {\n tabIndexValues[i] = el.getAttribute('tabindex');\n el.setAttribute('tabindex', '-1');\n });\n return () => {\n elements.forEach((el, i) => {\n const value = tabIndexValues[i];\n if (value == null) {\n el.removeAttribute('tabindex');\n } else {\n el.setAttribute('tabindex', value);\n }\n });\n };\n }\n }, [floating, modal, guards, getTabbableElements]);\n index(() => {\n if (!floating) return;\n const doc = getDocument(floating);\n let returnFocusValue = returnFocus;\n let preventReturnFocusScroll = false;\n const previouslyFocusedElement = activeElement$1(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n const focusableElements = getTabbableElements(floating);\n const elToFocus = (typeof initialFocus === 'number' ? focusableElements[initialFocus] : initialFocus.current) || floating;\n\n // If the `useListNavigation` hook is active, always ignore `initialFocus`\n // because it has its own handling of the initial focus.\n !ignoreInitialFocus && enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n returnFocusValue = true;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n returnFocusValue = returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n if (contains(floating, activeElement$1(doc)) && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (returnFocusValue && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n // `isPointerDownRef.current` to avoid the focus ring from appearing on\n // the reference element when click-toggling it.\n if (!refs.domReference.current || isPointerDownRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n } else {\n var _previouslyFocusedEle;\n // If the user has specified a `keydown` listener that calls\n // setOpen(false) (e.g. selecting an item and closing the floating\n // element), then sync return focus causes `useClick` to immediately\n // re-open it, unless they call `event.preventDefault()` in the\n // `keydown` listener. This helps keep backwards compatibility with\n // older examples.\n contextData.__syncReturnFocus = true;\n\n // In Safari, `useListNavigation` moves focus sync, so making this\n // sync ensures the initial item remains focused despite this being\n // invoked in Strict Mode due to double-invoked useEffects. This also\n // has the positive side effect of closing a modally focus-managed\n // on `Tab` keydown to move naturally to the next focusable\n // element.\n (_previouslyFocusedEle = previouslyFocusedElementRef.current) == null ? void 0 : _previouslyFocusedEle.focus({\n preventScroll: preventReturnFocusScroll\n });\n setTimeout(() => {\n // This isn't an actual property the user should access, make sure\n // it doesn't persist.\n delete contextData.__syncReturnFocus;\n });\n }\n }\n };\n }, [floating, getTabbableElements, initialFocus, returnFocus, dataRef, refs, events, ignoreInitialFocus]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n ...context,\n modal,\n closeOnFocusOut\n // Not concerned about the generic type.\n });\n\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [portalContext, modal, closeOnFocusOut, context]);\n index(() => {\n if (ignoreInitialFocus || !floating) return;\n function setState() {\n setTabbableContentLength(getTabbableContent().length);\n }\n setState();\n if (typeof MutationObserver === 'function') {\n const observer = new MutationObserver(setState);\n observer.observe(floating, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [floating, getTabbableContent, ignoreInitialFocus, refs]);\n const shouldRenderGuards = guards && (isInsidePortal || modal) && !isTypeableCombobox;\n function renderDismissButton(location) {\n return visuallyHiddenDismiss && modal ? /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: () => onOpenChange(false)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss') : null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), isTypeableCombobox ? null : renderDismissButton('start'), /*#__PURE__*/React.cloneElement(children, tabbableContentLength === 0 || order.includes('floating') ? {\n tabIndex: 0\n } : {}), renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = true;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nconst identifier = 'data-floating-ui-scroll-lock';\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `
`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n index(() => {\n var _window$visualViewpor, _window$visualViewpor2;\n if (!lockScroll) {\n return;\n }\n const alreadyLocked = document.body.hasAttribute(identifier);\n if (alreadyLocked) {\n return;\n }\n document.body.setAttribute(identifier, '');\n\n // RTL scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n Object.assign(document.body.style, {\n overflow: 'hidden',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n document.body.removeAttribute(identifier);\n Object.assign(document.body.style, {\n overflow: '',\n [paddingProp]: ''\n });\n };\n }\n\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n Object.assign(document.body.style, {\n position: 'fixed',\n overflow: 'hidden',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n Object.assign(document.body.style, {\n position: '',\n overflow: '',\n top: '',\n left: '',\n right: '',\n [paddingProp]: ''\n });\n document.body.removeAttribute(identifier);\n window.scrollTo(scrollX, scrollY);\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nconst useClick = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef();\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false);\n }\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onClick(event) {\n if (dataRef.current.__syncReturnFocus) {\n return;\n }\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n }\n if (event.key === 'Enter') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n },\n onKeyUp(event) {\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n};\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = function (bubbles) {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n if (bubbles === void 0) {\n bubbles = true;\n }\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles.escapeKey) != null ? _bubbles$escapeKey : true,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nconst useDismiss = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = _ref;\n let {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles = true\n } = _temp === void 0 ? {} : _temp;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onKeyDown(event) {\n if (event.key === 'Escape') {\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false);\n }\n }\n function onOutsidePress(event) {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n const win = floating.ownerDocument.defaultView || window;\n const canScrollX = target.scrollWidth > target.clientWidth;\n const canScrollY = target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = win.getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false);\n }\n function onScroll() {\n onOpenChange(false);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', onKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, onOutsidePress);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', onKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, onOutsidePress);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, events, tree, nodeId, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, nested]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n [bubbleHandlerKeys[referencePressEvent]]: () => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false);\n }\n }\n },\n floating: {\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange]);\n};\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nconst useFocus = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n keyboardOnly = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement$1(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref2) {\n let {\n pointerType\n } = _ref2;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && dataRef.current.openEvent && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n dataRef.current.openEvent = event.nativeEvent;\n onOpenChange(true);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute('data-floating-ui-focus-guard') && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n};\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nconst useListNavigation = function (_ref, _temp2) {\n let {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference\n }\n } = _ref;\n let {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true\n } = _temp2 === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null,\n onNavigate: () => {}\n } : _temp2;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const focusItem = React.useCallback(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (virtual) {\n setActiveId(item == null ? void 0 : item.id);\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n }, [virtual, scrollItemIntoViewRef]);\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousOpenRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousOpenRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousOpenRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n onNavigate(indexRef.current);\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n if (!enabled) {\n return;\n }\n if (previousOpenRef.current && !open) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating && !contains(parentFloating, activeElement$1(getDocument(parentFloating)))) {\n parentFloating.focus({\n preventScroll: true\n });\n }\n }\n }, [enabled, open, tree, parentId]);\n index(() => {\n keyRef.current = null;\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n });\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref2) {\n let {\n currentTarget\n } = _ref2;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref3 => {\n let {\n currentTarget\n } = _ref3;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref4) {\n let {\n currentTarget\n } = _ref4;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave() {\n if (!isPointerModalityRef.current) {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n\n // Virtual cursor with VoiceOver on iOS needs this to be flushed\n // synchronously or there is a glitch that prevents nested\n // submenus from being accessible.\n flushSync(() => onNavigate(null));\n if (!virtual) {\n var _refs$floating$curren;\n // This also needs to be sync to prevent fast mouse movements\n // from leaving behind a stale active item when landing on a\n // disabled button item.\n (_refs$floating$curren = refs.floating.current) == null ? void 0 : _refs$floating$curren.focus({\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false);\n if (isHTMLElement(domReference)) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n const prevIndex = indexRef.current;\n if (event.key === ARROW_UP) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n if (event.key === ARROW_DOWN) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = minIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = Math.floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stopEvent(event);\n if (prevIndex % cols !== 0) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n const lastRow = Math.floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n if (loop && lastRow) {\n indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n indexRef.current = prevIndex;\n }\n }\n onNavigate(indexRef.current);\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement$1(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': activeId\n };\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n if (virtual && open) {\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key === ' ' || event.key === '';\n if (isNavigationKey) {\n keyRef.current = event.key;\n }\n if (nested) {\n if (isCrossOrientationOpenKey(event.key, orientation, rtl)) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true);\n }\n }\n return;\n }\n if (isMainOrientationKey(event.key, orientation)) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n};\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nconst useRole = function (_ref, _temp) {\n let {\n open\n } = _ref;\n let {\n enabled = true,\n role = 'dialog'\n } = _temp === void 0 ? {} : _temp;\n const rootId = useId();\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: rootId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? rootId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? rootId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, rootId, referenceId]);\n};\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(_ref, _temp) {\n let {\n open,\n elements: {\n floating\n }\n } = _ref;\n let {\n duration = 250\n } = _temp === void 0 ? {} : _temp;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // . This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, _temp2) {\n let {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = _temp2 === void 0 ? {} : _temp2;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const [styles, setStyles] = React.useState({});\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n index(() => {\n const fnArgs = {\n side,\n placement\n };\n const initial = initialRef.current;\n const close = closeRef.current;\n const open = openRef.current;\n const common = commonRef.current;\n const initialStyles = typeof initial === 'function' ? initial(fnArgs) : initial;\n const closeStyles = typeof close === 'function' ? close(fnArgs) : close;\n const commonStyles = typeof common === 'function' ? common(fnArgs) : common;\n const openStyles = (typeof open === 'function' ? open(fnArgs) : open) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial' || status === 'unmounted') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [side, placement, closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nconst useTypeahead = function (_ref, _temp) {\n var _ref2;\n let {\n open,\n dataRef,\n refs\n } = _ref;\n let {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch = () => {},\n enabled = true,\n findMatch = null,\n resetMs = 1000,\n ignoreKeys = [],\n selectedIndex = null\n } = _temp === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null\n } : _temp;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEvent(unstable_onMatch);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref3;\n prevIndexRef.current = (_ref3 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref3 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function onKeyDown(event) {\n var _refs$floating$curren;\n // Correctly scope nested non-portalled floating elements. Since the nested\n // floating element is inside of the another, we find the closest role\n // that indicates the floating element scope.\n const target = getTarget(event.nativeEvent);\n if (isElement(target) && (activeElement$1(getDocument(target)) !== event.currentTarget ? (_refs$floating$curren = refs.floating.current) != null && _refs$floating$curren.contains(target) ? target.closest('[role=\"dialog\"],[role=\"menu\"],[role=\"listbox\"],[role=\"tree\"],[role=\"grid\"]') !== event.currentTarget : false : !event.currentTarget.contains(target))) {\n return;\n }\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n dataRef.current.typing = true;\n if (event.key === ' ') {\n stopEvent(event);\n }\n }\n const listContent = listRef.current;\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n dataRef.current.typing = false;\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const orderedList = [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)];\n const str = findMatchRef.current ? findMatchRef.current(orderedList, stringRef.current) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(stringRef.current.toLocaleLowerCase())) === 0);\n const index = str ? listContent.indexOf(str) : -1;\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown\n }\n };\n }, [enabled, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, refs]);\n};\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nconst useInnerOffset = (_ref, _ref2) => {\n let {\n open,\n elements\n } = _ref;\n let {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = _ref2;\n const onChange = useEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n};\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nfunction safePolygon(_temp) {\n let {\n restMs = 0,\n buffer = 0.5,\n blockPointerEvents = false\n } = _temp === void 0 ? {} : _temp;\n let timeoutId;\n let isInsideRect = false;\n let hasLanded = false;\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[rect.left, refRect.top + 1], [rect.left, rect.bottom - 1], [rect.right, rect.bottom - 1], [rect.right, refRect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= refRect.top + 1;\n break;\n case 'bottom':\n rectPoly = [[rect.left, rect.top + 1], [rect.left, refRect.bottom - 1], [rect.right, refRect.bottom - 1], [rect.right, rect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= refRect.bottom - 1 && clientY <= rect.bottom;\n break;\n case 'left':\n rectPoly = [[rect.right - 1, rect.bottom], [rect.right - 1, rect.top], [refRect.left + 1, rect.top], [refRect.left + 1, rect.bottom]];\n isInsideRect = clientX >= rect.left && clientX <= refRect.left + 1 && clientY >= rect.top && clientY <= rect.bottom;\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, rect.bottom], [refRect.right - 1, rect.top], [rect.left + 1, rect.top], [rect.left + 1, rect.bottom]];\n isInsideRect = clientX >= refRect.right - 1 && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n const poly = isInsideRect ? rectPoly : getPolygon([x, y]);\n if (isInsideRect) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isPointInPolygon([clientX, clientY], poly)) {\n close();\n } else if (restMs && !hasLanded) {\n timeoutId = setTimeout(close, restMs);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const [domReference, setDomReference] = React.useState(null);\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const onOpenChange = useEvent(unstable_onOpenChange);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n reference: setReference,\n positionReference: setPositionReference\n }), [position, refs, context, setReference, setPositionReference]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.forEach(fn => fn(...args));\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\nconst useInteractions = function (propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n};\n\nexport { FloatingDelayGroup, FloatingFocusManager, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import { useState, useEffect } from 'react';\nimport { autoUpdate } from '@floating-ui/react';\nimport { useDidUpdate } from '@mantine/hooks';\n\nfunction useFloatingAutoUpdate({\n opened,\n floating,\n position,\n positionDependencies\n}) {\n const [delayedUpdate, setDelayedUpdate] = useState(0);\n useEffect(() => {\n if (floating.refs.reference.current && floating.refs.floating.current) {\n return autoUpdate(floating.refs.reference.current, floating.refs.floating.current, floating.update);\n }\n return void 0;\n }, [\n floating.refs.reference.current,\n floating.refs.floating.current,\n opened,\n delayedUpdate,\n position\n ]);\n useDidUpdate(() => {\n floating.update();\n }, positionDependencies);\n useDidUpdate(() => {\n setDelayedUpdate((c) => c + 1);\n }, [opened]);\n}\n\nexport { useFloatingAutoUpdate };\n//# sourceMappingURL=use-floating-auto-update.js.map\n","import { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { useFloating, size, offset, shift, limitShift, flip, inline, arrow } from '@floating-ui/react';\nimport { useFloatingAutoUpdate } from '../Floating/use-floating-auto-update.js';\n\nfunction getPopoverMiddlewares(options) {\n const middlewares = [offset(options.offset)];\n if (options.middlewares.shift) {\n middlewares.push(shift({ limiter: limitShift() }));\n }\n if (options.middlewares.flip) {\n middlewares.push(flip());\n }\n if (options.middlewares.inline) {\n middlewares.push(inline());\n }\n middlewares.push(arrow({ element: options.arrowRef, padding: options.arrowOffset }));\n return middlewares;\n}\nfunction usePopover(options) {\n const [_opened, setOpened] = useUncontrolled({\n value: options.opened,\n defaultValue: options.defaultOpened,\n finalValue: false,\n onChange: options.onChange\n });\n const onClose = () => {\n var _a;\n (_a = options.onClose) == null ? void 0 : _a.call(options);\n setOpened(false);\n };\n const onToggle = () => {\n var _a, _b;\n if (_opened) {\n (_a = options.onClose) == null ? void 0 : _a.call(options);\n setOpened(false);\n } else {\n (_b = options.onOpen) == null ? void 0 : _b.call(options);\n setOpened(true);\n }\n };\n const floating = useFloating({\n placement: options.position,\n middleware: [\n ...getPopoverMiddlewares(options),\n ...options.width === \"target\" ? [\n size({\n apply({ rects }) {\n var _a, _b;\n Object.assign((_b = (_a = floating.refs.floating.current) == null ? void 0 : _a.style) != null ? _b : {}, {\n width: `${rects.reference.width}px`\n });\n }\n })\n ] : []\n ]\n });\n useFloatingAutoUpdate({\n opened: options.opened,\n position: options.position,\n positionDependencies: options.positionDependencies,\n floating\n });\n useDidUpdate(() => {\n var _a;\n (_a = options.onPositionChange) == null ? void 0 : _a.call(options, floating.placement);\n }, [floating.placement]);\n useDidUpdate(() => {\n var _a, _b;\n if (!options.opened) {\n (_a = options.onClose) == null ? void 0 : _a.call(options);\n } else {\n (_b = options.onOpen) == null ? void 0 : _b.call(options);\n }\n }, [options.opened]);\n return {\n floating,\n controlled: typeof options.opened === \"boolean\",\n opened: _opened,\n onClose,\n onToggle\n };\n}\n\nexport { usePopover };\n//# sourceMappingURL=use-popover.js.map\n","const POPOVER_ERRORS = {\n context: \"Popover component was not found in the tree\",\n children: \"Popover.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported\"\n};\n\nexport { POPOVER_ERRORS };\n//# sourceMappingURL=Popover.errors.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { POPOVER_ERRORS } from './Popover.errors.js';\n\nconst [PopoverContextProvider, usePopoverContext] = createSafeContext(POPOVER_ERRORS.context);\n\nexport { PopoverContextProvider, usePopoverContext };\n//# sourceMappingURL=Popover.context.js.map\n","import { forwardRef, cloneElement } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { isElement } from '@mantine/utils';\nimport { useComponentDefaultProps, clsx } from '@mantine/styles';\nimport { usePopoverContext } from '../Popover.context.js';\nimport { POPOVER_ERRORS } from '../Popover.errors.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n refProp: \"ref\",\n popupType: \"dialog\"\n};\nconst PopoverTarget = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"PopoverTarget\", defaultProps, props), { children, refProp, popupType } = _a, others = __objRest(_a, [\"children\", \"refProp\", \"popupType\"]);\n if (!isElement(children)) {\n throw new Error(POPOVER_ERRORS.children);\n }\n const forwardedProps = others;\n const ctx = usePopoverContext();\n const targetRef = useMergedRef(ctx.reference, children.ref, ref);\n const accessibleProps = ctx.withRoles ? {\n \"aria-haspopup\": popupType,\n \"aria-expanded\": ctx.opened,\n \"aria-controls\": ctx.getDropdownId(),\n id: ctx.getTargetId()\n } : {};\n return cloneElement(children, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, forwardedProps), accessibleProps), ctx.targetProps), {\n className: clsx(ctx.targetProps.className, forwardedProps.className, children.props.className),\n [refProp]: targetRef\n }), !ctx.controlled ? { onClick: ctx.onToggle } : null));\n});\nPopoverTarget.displayName = \"@mantine/core/PopoverTarget\";\n\nexport { PopoverTarget };\n//# sourceMappingURL=PopoverTarget.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { radius, shadow }) => ({\n dropdown: {\n position: \"absolute\",\n backgroundColor: theme.white,\n background: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white,\n border: `${rem(1)} solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]}`,\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\n boxShadow: theme.shadows[shadow] || shadow || \"none\",\n borderRadius: theme.fn.radius(radius),\n \"&:focus\": {\n outline: 0\n }\n },\n arrow: {\n backgroundColor: \"inherit\",\n border: `${rem(1)} solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]}`,\n zIndex: 1\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=PopoverDropdown.styles.js.map\n","import { transitions } from '../transitions.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst transitionStatuses = {\n entering: \"in\",\n entered: \"in\",\n exiting: \"out\",\n exited: \"out\",\n \"pre-exiting\": \"out\",\n \"pre-entering\": \"out\"\n};\nfunction getTransitionStyles({\n transition,\n state,\n duration,\n timingFunction\n}) {\n const shared = {\n transitionDuration: `${duration}ms`,\n transitionTimingFunction: timingFunction\n };\n if (typeof transition === \"string\") {\n if (!(transition in transitions)) {\n return null;\n }\n return __spreadValues(__spreadValues(__spreadValues({\n transitionProperty: transitions[transition].transitionProperty\n }, shared), transitions[transition].common), transitions[transition][transitionStatuses[state]]);\n }\n return __spreadValues(__spreadValues(__spreadValues({\n transitionProperty: transition.transitionProperty\n }, shared), transition.common), transition[transitionStatuses[state]]);\n}\n\nexport { getTransitionStyles };\n//# sourceMappingURL=get-transition-styles.js.map\n","import { useState, useRef, useEffect } from 'react';\nimport { useReducedMotion, useDidUpdate } from '@mantine/hooks';\nimport { useMantineTheme } from '@mantine/styles';\n\nfunction useTransition({\n duration,\n exitDuration,\n timingFunction,\n mounted,\n onEnter,\n onExit,\n onEntered,\n onExited\n}) {\n const theme = useMantineTheme();\n const shouldReduceMotion = useReducedMotion();\n const reduceMotion = theme.respectReducedMotion ? shouldReduceMotion : false;\n const [transitionDuration, setTransitionDuration] = useState(reduceMotion ? 0 : duration);\n const [transitionStatus, setStatus] = useState(mounted ? \"entered\" : \"exited\");\n const timeoutRef = useRef(-1);\n const handleStateChange = (shouldMount) => {\n const preHandler = shouldMount ? onEnter : onExit;\n const handler = shouldMount ? onEntered : onExited;\n setStatus(shouldMount ? \"pre-entering\" : \"pre-exiting\");\n window.clearTimeout(timeoutRef.current);\n const newTransitionDuration = reduceMotion ? 0 : shouldMount ? duration : exitDuration;\n setTransitionDuration(newTransitionDuration);\n if (newTransitionDuration === 0) {\n typeof preHandler === \"function\" && preHandler();\n typeof handler === \"function\" && handler();\n setStatus(shouldMount ? \"entered\" : \"exited\");\n } else {\n const preStateTimeout = window.setTimeout(() => {\n typeof preHandler === \"function\" && preHandler();\n setStatus(shouldMount ? \"entering\" : \"exiting\");\n }, 10);\n timeoutRef.current = window.setTimeout(() => {\n window.clearTimeout(preStateTimeout);\n typeof handler === \"function\" && handler();\n setStatus(shouldMount ? \"entered\" : \"exited\");\n }, newTransitionDuration);\n }\n };\n useDidUpdate(() => {\n handleStateChange(mounted);\n }, [mounted]);\n useEffect(() => () => window.clearTimeout(timeoutRef.current), []);\n return {\n transitionDuration,\n transitionStatus,\n transitionTimingFunction: timingFunction || theme.transitionTimingFunction\n };\n}\n\nexport { useTransition };\n//# sourceMappingURL=use-transition.js.map\n","import React from 'react';\nimport { getTransitionStyles } from './get-transition-styles/get-transition-styles.js';\nimport { useTransition } from './use-transition.js';\n\nfunction Transition({\n keepMounted,\n transition,\n duration = 250,\n exitDuration = duration,\n mounted,\n children,\n timingFunction,\n onExit,\n onEntered,\n onEnter,\n onExited\n}) {\n const { transitionDuration, transitionStatus, transitionTimingFunction } = useTransition({\n mounted,\n exitDuration,\n duration,\n timingFunction,\n onExit,\n onEntered,\n onEnter,\n onExited\n });\n if (transitionDuration === 0) {\n return mounted ? /* @__PURE__ */ React.createElement(React.Fragment, null, children({})) : keepMounted ? children({ display: \"none\" }) : null;\n }\n return transitionStatus === \"exited\" ? keepMounted ? children({ display: \"none\" }) : null : /* @__PURE__ */ React.createElement(React.Fragment, null, children(getTransitionStyles({\n transition,\n duration: transitionDuration,\n state: transitionStatus,\n timingFunction: transitionTimingFunction\n })));\n}\nTransition.displayName = \"@mantine/core/Transition\";\n\nexport { Transition };\n//# sourceMappingURL=Transition.js.map\n","import { cloneElement } from 'react';\nimport { isElement } from '@mantine/utils';\nimport { useFocusTrap, useMergedRef } from '@mantine/hooks';\n\nfunction FocusTrap({\n children,\n active = true,\n refProp = \"ref\"\n}) {\n const focusTrapRef = useFocusTrap(active);\n const ref = useMergedRef(focusTrapRef, children == null ? void 0 : children.ref);\n if (!isElement(children)) {\n return children;\n }\n return cloneElement(children, { [refProp]: ref });\n}\nFocusTrap.displayName = \"@mantine/core/FocusTrap\";\n\nexport { FocusTrap };\n//# sourceMappingURL=FocusTrap.js.map\n","import { rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction horizontalSide(placement, arrowY, arrowOffset, arrowPosition) {\n if (placement === \"center\" || arrowPosition === \"center\") {\n return { top: arrowY };\n }\n if (placement === \"end\") {\n return { bottom: arrowOffset };\n }\n if (placement === \"start\") {\n return { top: arrowOffset };\n }\n return {};\n}\nfunction verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir) {\n if (placement === \"center\" || arrowPosition === \"center\") {\n return { left: arrowX };\n }\n if (placement === \"end\") {\n return { [dir === \"ltr\" ? \"right\" : \"left\"]: arrowOffset };\n }\n if (placement === \"start\") {\n return { [dir === \"ltr\" ? \"left\" : \"right\"]: arrowOffset };\n }\n return {};\n}\nconst radiusByFloatingSide = {\n bottom: \"borderTopLeftRadius\",\n left: \"borderTopRightRadius\",\n right: \"borderBottomLeftRadius\",\n top: \"borderBottomRightRadius\"\n};\nfunction getArrowPositionStyles({\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n arrowX,\n arrowY,\n dir\n}) {\n const [side, placement = \"center\"] = position.split(\"-\");\n const baseStyles = {\n width: rem(arrowSize),\n height: rem(arrowSize),\n transform: \"rotate(45deg)\",\n position: \"absolute\",\n [radiusByFloatingSide[side]]: rem(arrowRadius)\n };\n const arrowPlacement = rem(-arrowSize / 2);\n if (side === \"left\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {\n right: arrowPlacement,\n borderLeftColor: \"transparent\",\n borderBottomColor: \"transparent\"\n });\n }\n if (side === \"right\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {\n left: arrowPlacement,\n borderRightColor: \"transparent\",\n borderTopColor: \"transparent\"\n });\n }\n if (side === \"top\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {\n bottom: arrowPlacement,\n borderTopColor: \"transparent\",\n borderLeftColor: \"transparent\"\n });\n }\n if (side === \"bottom\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {\n top: arrowPlacement,\n borderBottomColor: \"transparent\",\n borderRightColor: \"transparent\"\n });\n }\n return {};\n}\n\nexport { getArrowPositionStyles };\n//# sourceMappingURL=get-arrow-position-styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/styles';\nimport { getArrowPositionStyles } from './get-arrow-position-styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst FloatingArrow = forwardRef((_a, ref) => {\n var _b = _a, {\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n visible,\n arrowX,\n arrowY\n } = _b, others = __objRest(_b, [\n \"position\",\n \"arrowSize\",\n \"arrowOffset\",\n \"arrowRadius\",\n \"arrowPosition\",\n \"visible\",\n \"arrowX\",\n \"arrowY\"\n ]);\n const theme = useMantineTheme();\n if (!visible) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(\"div\", __spreadProps(__spreadValues({}, others), {\n ref,\n style: getArrowPositionStyles({\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n dir: theme.dir,\n arrowX,\n arrowY\n })\n }));\n});\nFloatingArrow.displayName = \"@mantine/core/FloatingArrow\";\n\nexport { FloatingArrow };\n//# sourceMappingURL=FloatingArrow.js.map\n","import React from 'react';\nimport { useComponentDefaultProps, rem } from '@mantine/styles';\nimport { closeOnEscape } from '@mantine/utils';\nimport { useFocusReturn } from '@mantine/hooks';\nimport { usePopoverContext } from '../Popover.context.js';\nimport useStyles from './PopoverDropdown.styles.js';\nimport { OptionalPortal } from '../../Portal/OptionalPortal.js';\nimport { Transition } from '../../Transition/Transition.js';\nimport { FocusTrap } from '../../FocusTrap/FocusTrap.js';\nimport { Box } from '../../Box/Box.js';\nimport { FloatingArrow } from '../../Floating/FloatingArrow/FloatingArrow.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nfunction PopoverDropdown(props) {\n var _b;\n const _a = useComponentDefaultProps(\"PopoverDropdown\", defaultProps, props), { style, className, children, onKeyDownCapture } = _a, others = __objRest(_a, [\"style\", \"className\", \"children\", \"onKeyDownCapture\"]);\n const ctx = usePopoverContext();\n const { classes, cx } = useStyles({ radius: ctx.radius, shadow: ctx.shadow }, {\n name: ctx.__staticSelector,\n classNames: ctx.classNames,\n styles: ctx.styles,\n unstyled: ctx.unstyled,\n variant: ctx.variant\n });\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus\n });\n const accessibleProps = ctx.withRoles ? {\n \"aria-labelledby\": ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: \"dialog\"\n } : {};\n if (ctx.disabled) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(OptionalPortal, __spreadProps(__spreadValues({}, ctx.portalProps), {\n withinPortal: ctx.withinPortal\n }), /* @__PURE__ */ React.createElement(Transition, __spreadProps(__spreadValues({\n mounted: ctx.opened\n }, ctx.transitionProps), {\n transition: ctx.transitionProps.transition || \"fade\",\n duration: (_b = ctx.transitionProps.duration) != null ? _b : 150,\n keepMounted: ctx.keepMounted,\n exitDuration: typeof ctx.transitionProps.exitDuration === \"number\" ? ctx.transitionProps.exitDuration : ctx.transitionProps.duration\n }), (transitionStyles) => {\n var _a2, _b2;\n return /* @__PURE__ */ React.createElement(FocusTrap, {\n active: ctx.trapFocus\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues(__spreadProps(__spreadValues({}, accessibleProps), {\n tabIndex: -1,\n ref: ctx.floating,\n style: __spreadProps(__spreadValues(__spreadValues({}, style), transitionStyles), {\n zIndex: ctx.zIndex,\n top: (_a2 = ctx.y) != null ? _a2 : 0,\n left: (_b2 = ctx.x) != null ? _b2 : 0,\n width: ctx.width === \"target\" ? void 0 : rem(ctx.width)\n }),\n className: cx(classes.dropdown, className),\n onKeyDownCapture: closeOnEscape(ctx.onClose, {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture\n }),\n \"data-position\": ctx.placement\n }), others), children, /* @__PURE__ */ React.createElement(FloatingArrow, {\n ref: ctx.arrowRef,\n arrowX: ctx.arrowX,\n arrowY: ctx.arrowY,\n visible: ctx.withArrow,\n position: ctx.placement,\n arrowSize: ctx.arrowSize,\n arrowRadius: ctx.arrowRadius,\n arrowOffset: ctx.arrowOffset,\n arrowPosition: ctx.arrowPosition,\n className: classes.arrow\n })));\n }));\n}\nPopoverDropdown.displayName = \"@mantine/core/PopoverDropdown\";\n\nexport { PopoverDropdown };\n//# sourceMappingURL=PopoverDropdown.js.map\n","function getFloatingPosition(dir, position) {\n if (dir === \"rtl\" && (position.includes(\"right\") || position.includes(\"left\"))) {\n const [side, placement] = position.split(\"-\");\n const flippedPosition = side === \"right\" ? \"left\" : \"right\";\n return placement === void 0 ? flippedPosition : `${flippedPosition}-${placement}`;\n }\n return position;\n}\n\nexport { getFloatingPosition };\n//# sourceMappingURL=get-floating-position.js.map\n","import React, { useRef, useState, useCallback } from 'react';\nimport { useId, useClickOutside } from '@mantine/hooks';\nimport { getDefaultZIndex, useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\nimport { usePopover } from './use-popover.js';\nimport { PopoverContextProvider } from './Popover.context.js';\nimport { PopoverTarget } from './PopoverTarget/PopoverTarget.js';\nimport { PopoverDropdown } from './PopoverDropdown/PopoverDropdown.js';\nimport { getFloatingPosition } from '../Floating/get-floating-position/get-floating-position.js';\n\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n position: \"bottom\",\n offset: 8,\n positionDependencies: [],\n transitionProps: { transition: \"fade\", duration: 150 },\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: \"side\",\n closeOnClickOutside: true,\n withinPortal: false,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n clickOutsideEvents: [\"mousedown\", \"touchstart\"],\n zIndex: getDefaultZIndex(\"popover\"),\n __staticSelector: \"Popover\",\n width: \"max-content\"\n};\nfunction Popover(props) {\n var _b, _c, _d, _e, _f, _g;\n const arrowRef = useRef(null);\n const _a = useComponentDefaultProps(\"Popover\", defaultProps, props), {\n children,\n position,\n offset,\n onPositionChange,\n positionDependencies,\n opened,\n transitionProps,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n portalProps,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted\n } = _a, others = __objRest(_a, [\n \"children\",\n \"position\",\n \"offset\",\n \"onPositionChange\",\n \"positionDependencies\",\n \"opened\",\n \"transitionProps\",\n \"width\",\n \"middlewares\",\n \"withArrow\",\n \"arrowSize\",\n \"arrowOffset\",\n \"arrowRadius\",\n \"arrowPosition\",\n \"unstyled\",\n \"classNames\",\n \"styles\",\n \"closeOnClickOutside\",\n \"withinPortal\",\n \"portalProps\",\n \"closeOnEscape\",\n \"clickOutsideEvents\",\n \"trapFocus\",\n \"onClose\",\n \"onOpen\",\n \"onChange\",\n \"zIndex\",\n \"radius\",\n \"shadow\",\n \"id\",\n \"defaultOpened\",\n \"__staticSelector\",\n \"withRoles\",\n \"disabled\",\n \"returnFocus\",\n \"variant\",\n \"keepMounted\"\n ]);\n const [targetNode, setTargetNode] = useState(null);\n const [dropdownNode, setDropdownNode] = useState(null);\n const uid = useId(id);\n const theme = useMantineTheme();\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(theme.dir, position),\n offset: typeof offset === \"number\" ? offset + (withArrow ? arrowSize / 2 : 0) : offset,\n arrowRef,\n arrowOffset,\n onPositionChange,\n positionDependencies,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose\n });\n useClickOutside(() => popover.opened && closeOnClickOutside && popover.onClose(), clickOutsideEvents, [targetNode, dropdownNode]);\n const reference = useCallback((node) => {\n setTargetNode(node);\n popover.floating.reference(node);\n }, [popover.floating.reference]);\n const floating = useCallback((node) => {\n setDropdownNode(node);\n popover.floating.floating(node);\n }, [popover.floating.floating]);\n return /* @__PURE__ */ React.createElement(PopoverContextProvider, {\n value: {\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: (_d = (_c = (_b = popover.floating) == null ? void 0 : _b.middlewareData) == null ? void 0 : _c.arrow) == null ? void 0 : _d.x,\n arrowY: (_g = (_f = (_e = popover.floating) == null ? void 0 : _e.middlewareData) == null ? void 0 : _f.arrow) == null ? void 0 : _g.y,\n opened: popover.opened,\n arrowRef,\n transitionProps,\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n portalProps,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => `${uid}-target`,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted\n }\n }, children);\n}\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.displayName = \"@mantine/core/Popover\";\n\nexport { Popover };\n//# sourceMappingURL=Popover.js.map\n","import { useComponentDefaultProps } from '@mantine/styles';\nimport { useId } from '@mantine/hooks';\nimport { extractSystemStyles } from '../Box/style-system-props/extract-system-styles/extract-system-styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useInputProps(component, defaultProps, props) {\n const _a = useComponentDefaultProps(component, defaultProps, props), {\n label,\n description,\n error,\n required,\n classNames,\n styles,\n className,\n unstyled,\n __staticSelector,\n sx,\n errorProps,\n labelProps,\n descriptionProps,\n wrapperProps: _wrapperProps,\n id,\n size,\n style,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n variant\n } = _a, others = __objRest(_a, [\n \"label\",\n \"description\",\n \"error\",\n \"required\",\n \"classNames\",\n \"styles\",\n \"className\",\n \"unstyled\",\n \"__staticSelector\",\n \"sx\",\n \"errorProps\",\n \"labelProps\",\n \"descriptionProps\",\n \"wrapperProps\",\n \"id\",\n \"size\",\n \"style\",\n \"inputContainer\",\n \"inputWrapperOrder\",\n \"withAsterisk\",\n \"variant\"\n ]);\n const uid = useId(id);\n const { systemStyles, rest } = extractSystemStyles(others);\n const wrapperProps = __spreadValues({\n label,\n description,\n error,\n required,\n classNames,\n className,\n __staticSelector,\n sx,\n errorProps,\n labelProps,\n descriptionProps,\n unstyled,\n styles,\n id: uid,\n size,\n style,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n variant\n }, _wrapperProps);\n return __spreadProps(__spreadValues({}, rest), {\n classNames,\n styles,\n unstyled,\n wrapperProps: __spreadValues(__spreadValues({}, wrapperProps), systemStyles),\n inputProps: {\n required,\n classNames,\n styles,\n unstyled,\n id: uid,\n size,\n __staticSelector,\n error,\n variant\n }\n });\n}\n\nexport { useInputProps };\n//# sourceMappingURL=use-input-props.js.map\n","import { createStyles, getSize } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, _params, { size }) => ({\n label: {\n display: \"inline-block\",\n fontSize: getSize({ size, sizes: theme.fontSizes }),\n fontWeight: 500,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.gray[9],\n wordBreak: \"break-word\",\n cursor: \"default\",\n WebkitTapHighlightColor: \"transparent\"\n },\n required: {\n color: theme.fn.variant({ variant: \"filled\", color: \"red\" }).background\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputLabel.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './InputLabel.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n labelElement: \"label\",\n size: \"sm\"\n};\nconst InputLabel = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputLabel\", defaultProps, props), {\n labelElement,\n children,\n required,\n size,\n classNames,\n styles,\n unstyled,\n className,\n htmlFor,\n __staticSelector,\n variant,\n onMouseDown\n } = _a, others = __objRest(_a, [\n \"labelElement\",\n \"children\",\n \"required\",\n \"size\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"className\",\n \"htmlFor\",\n \"__staticSelector\",\n \"variant\",\n \"onMouseDown\"\n ]);\n const { classes, cx } = useStyles(null, {\n name: [\"InputWrapper\", __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size\n });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: labelElement,\n ref,\n className: cx(classes.label, className),\n htmlFor: labelElement === \"label\" ? htmlFor : void 0,\n onMouseDown: (event) => {\n onMouseDown == null ? void 0 : onMouseDown(event);\n if (!event.defaultPrevented && event.detail > 1) {\n event.preventDefault();\n }\n }\n }, others), children, required && /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.required,\n \"aria-hidden\": true\n }, \" *\"));\n});\nInputLabel.displayName = \"@mantine/core/InputLabel\";\n\nexport { InputLabel };\n//# sourceMappingURL=InputLabel.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, _params, { size }) => ({\n error: {\n wordBreak: \"break-word\",\n color: theme.fn.variant({ variant: \"filled\", color: \"red\" }).background,\n fontSize: `calc(${getSize({ size, sizes: theme.fontSizes })} - ${rem(2)})`,\n lineHeight: 1.2,\n display: \"block\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputError.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './InputError.styles.js';\nimport { Text } from '../../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\"\n};\nconst InputError = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputError\", defaultProps, props), {\n children,\n className,\n classNames,\n styles,\n unstyled,\n size,\n __staticSelector,\n variant\n } = _a, others = __objRest(_a, [\n \"children\",\n \"className\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"size\",\n \"__staticSelector\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles(null, {\n name: [\"InputWrapper\", __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size\n });\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n className: cx(classes.error, className),\n ref\n }, others), children);\n});\nInputError.displayName = \"@mantine/core/InputError\";\n\nexport { InputError };\n//# sourceMappingURL=InputError.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, _params, { size }) => ({\n description: {\n wordBreak: \"break-word\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6],\n fontSize: `calc(${getSize({ size, sizes: theme.fontSizes })} - ${rem(2)})`,\n lineHeight: 1.2,\n display: \"block\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputDescription.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './InputDescription.styles.js';\nimport { Text } from '../../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\"\n};\nconst InputDescription = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputDescription\", defaultProps, props), {\n children,\n className,\n classNames,\n styles,\n unstyled,\n size,\n __staticSelector,\n variant\n } = _a, others = __objRest(_a, [\n \"children\",\n \"className\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"size\",\n \"__staticSelector\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles(null, {\n name: [\"InputWrapper\", __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size\n });\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n color: \"dimmed\",\n className: cx(classes.description, className),\n ref,\n unstyled\n }, others), children);\n});\nInputDescription.displayName = \"@mantine/core/InputDescription\";\n\nexport { InputDescription };\n//# sourceMappingURL=InputDescription.js.map\n","import { useContext, createContext } from 'react';\n\nconst InputWrapperContext = createContext({\n offsetBottom: false,\n offsetTop: false,\n describedBy: void 0\n});\nconst InputWrapperProvider = InputWrapperContext.Provider;\nconst useInputWrapperContext = () => useContext(InputWrapperContext);\n\nexport { InputWrapperProvider, useInputWrapperContext };\n//# sourceMappingURL=InputWrapper.context.js.map\n","function getInputOffsets(inputWrapperOrder, { hasDescription, hasError }) {\n const inputIndex = inputWrapperOrder.findIndex((part) => part === \"input\");\n const aboveInput = inputWrapperOrder[inputIndex - 1];\n const belowInput = inputWrapperOrder[inputIndex + 1];\n const offsetTop = hasDescription && aboveInput === \"description\" || hasError && aboveInput === \"error\";\n const offsetBottom = hasDescription && belowInput === \"description\" || hasError && belowInput === \"error\";\n return { offsetBottom, offsetTop };\n}\n\nexport { getInputOffsets };\n//# sourceMappingURL=get-input-offsets.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme) => ({\n root: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n lineHeight: theme.lineHeight\n })\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputWrapper.styles.js.map\n","import React, { forwardRef, Fragment } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { InputLabel } from '../InputLabel/InputLabel.js';\nimport { InputError } from '../InputError/InputError.js';\nimport { InputDescription } from '../InputDescription/InputDescription.js';\nimport { InputWrapperProvider } from '../InputWrapper.context.js';\nimport { getInputOffsets } from './get-input-offsets.js';\nimport useStyles from './InputWrapper.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n labelElement: \"label\",\n size: \"sm\",\n inputContainer: (children) => children,\n inputWrapperOrder: [\"label\", \"description\", \"input\", \"error\"]\n};\nconst InputWrapper = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputWrapper\", defaultProps, props), {\n className,\n label,\n children,\n required,\n id,\n error,\n description,\n labelElement,\n labelProps,\n descriptionProps,\n errorProps,\n classNames,\n styles,\n size,\n inputContainer,\n __staticSelector,\n unstyled,\n inputWrapperOrder,\n withAsterisk,\n variant\n } = _a, others = __objRest(_a, [\n \"className\",\n \"label\",\n \"children\",\n \"required\",\n \"id\",\n \"error\",\n \"description\",\n \"labelElement\",\n \"labelProps\",\n \"descriptionProps\",\n \"errorProps\",\n \"classNames\",\n \"styles\",\n \"size\",\n \"inputContainer\",\n \"__staticSelector\",\n \"unstyled\",\n \"inputWrapperOrder\",\n \"withAsterisk\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles(null, {\n classNames,\n styles,\n name: [\"InputWrapper\", __staticSelector],\n unstyled,\n variant,\n size\n });\n const sharedProps = {\n classNames,\n styles,\n unstyled,\n size,\n variant,\n __staticSelector\n };\n const isRequired = typeof withAsterisk === \"boolean\" ? withAsterisk : required;\n const errorId = id ? `${id}-error` : errorProps == null ? void 0 : errorProps.id;\n const descriptionId = id ? `${id}-description` : descriptionProps == null ? void 0 : descriptionProps.id;\n const hasError = !!error && typeof error !== \"boolean\";\n const _describedBy = `${hasError ? errorId : \"\"} ${description ? descriptionId : \"\"}`;\n const describedBy = _describedBy.trim().length > 0 ? _describedBy.trim() : void 0;\n const _label = label && /* @__PURE__ */ React.createElement(InputLabel, __spreadValues(__spreadValues({\n key: \"label\",\n labelElement,\n id: id ? `${id}-label` : void 0,\n htmlFor: id,\n required: isRequired\n }, sharedProps), labelProps), label);\n const _description = description && /* @__PURE__ */ React.createElement(InputDescription, __spreadProps(__spreadValues(__spreadValues({\n key: \"description\"\n }, descriptionProps), sharedProps), {\n size: (descriptionProps == null ? void 0 : descriptionProps.size) || sharedProps.size,\n id: (descriptionProps == null ? void 0 : descriptionProps.id) || descriptionId\n }), description);\n const _input = /* @__PURE__ */ React.createElement(Fragment, {\n key: \"input\"\n }, inputContainer(children));\n const _error = typeof error !== \"boolean\" && error && /* @__PURE__ */ React.createElement(InputError, __spreadProps(__spreadValues(__spreadValues({}, errorProps), sharedProps), {\n size: (errorProps == null ? void 0 : errorProps.size) || sharedProps.size,\n key: \"error\",\n id: (errorProps == null ? void 0 : errorProps.id) || errorId\n }), error);\n const content = inputWrapperOrder.map((part) => {\n switch (part) {\n case \"label\":\n return _label;\n case \"input\":\n return _input;\n case \"description\":\n return _description;\n case \"error\":\n return _error;\n default:\n return null;\n }\n });\n return /* @__PURE__ */ React.createElement(InputWrapperProvider, {\n value: __spreadValues({\n describedBy\n }, getInputOffsets(inputWrapperOrder, {\n hasDescription: !!_description,\n hasError: !!_error\n }))\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), content));\n});\nInputWrapper.displayName = \"@mantine/core/InputWrapper\";\n\nexport { InputWrapper };\n//# sourceMappingURL=InputWrapper.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { packSx } from '@mantine/utils';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst InputPlaceholder = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputPlaceholder\", defaultProps, props), { sx } = _a, others = __objRest(_a, [\"sx\"]);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: \"span\",\n sx: [(theme) => theme.fn.placeholderStyles(), ...packSx(sx)],\n ref\n }, others));\n});\nInputPlaceholder.displayName = \"@mantine/core/InputPlaceholder\";\n\nexport { InputPlaceholder };\n//# sourceMappingURL=InputPlaceholder.js.map\n","import { rem, createStyles, getSize } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: rem(30),\n sm: rem(36),\n md: rem(42),\n lg: rem(50),\n xl: rem(60)\n};\nconst INPUT_VARIANTS = [\"default\", \"filled\", \"unstyled\"];\nfunction getVariantStyles({ theme, variant }) {\n if (!INPUT_VARIANTS.includes(variant)) {\n return null;\n }\n if (variant === \"default\") {\n return {\n border: `${rem(1)} solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[4]}`,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white,\n transition: \"border-color 100ms ease\",\n \"&:focus, &:focus-within\": theme.focusRingStyles.inputStyles(theme)\n };\n }\n if (variant === \"filled\") {\n return {\n border: `${rem(1)} solid transparent`,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.colors.gray[1],\n \"&:focus, &:focus-within\": theme.focusRingStyles.inputStyles(theme)\n };\n }\n return {\n borderWidth: 0,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n backgroundColor: \"transparent\",\n minHeight: rem(28),\n outline: 0,\n \"&:focus, &:focus-within\": {\n outline: \"none\",\n borderColor: \"transparent\"\n },\n \"&:disabled\": {\n backgroundColor: \"transparent\",\n \"&:focus, &:focus-within\": {\n outline: \"none\",\n borderColor: \"transparent\"\n }\n }\n };\n}\nvar useStyles = createStyles((theme, {\n multiline,\n radius,\n invalid,\n rightSectionWidth,\n withRightSection,\n iconWidth,\n offsetBottom,\n offsetTop,\n pointer\n}, { variant, size }) => {\n const invalidColor = theme.fn.variant({\n variant: \"filled\",\n color: \"red\"\n }).background;\n const sizeStyles = variant === \"default\" || variant === \"filled\" ? {\n minHeight: getSize({ size, sizes }),\n paddingLeft: `calc(${getSize({ size, sizes })} / 3)`,\n paddingRight: withRightSection ? rightSectionWidth || getSize({ size, sizes }) : `calc(${getSize({ size, sizes })} / 3)`,\n borderRadius: theme.fn.radius(radius)\n } : variant === \"unstyled\" && withRightSection ? {\n paddingRight: rightSectionWidth || getSize({ size, sizes })\n } : null;\n return {\n wrapper: {\n position: \"relative\",\n marginTop: offsetTop ? `calc(${theme.spacing.xs} / 2)` : void 0,\n marginBottom: offsetBottom ? `calc(${theme.spacing.xs} / 2)` : void 0,\n \"&:has(input:disabled)\": {\n \"& .mantine-Input-rightSection\": {\n display: \"none\"\n }\n }\n },\n input: __spreadProps(__spreadValues(__spreadValues(__spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n height: multiline ? variant === \"unstyled\" ? void 0 : \"auto\" : getSize({ size, sizes }),\n WebkitTapHighlightColor: \"transparent\",\n lineHeight: multiline ? theme.lineHeight : `calc(${getSize({ size, sizes })} - ${rem(2)})`,\n appearance: \"none\",\n resize: \"none\",\n boxSizing: \"border-box\",\n fontSize: getSize({ size, sizes: theme.fontSizes }),\n width: \"100%\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n display: \"block\",\n textAlign: \"left\",\n cursor: pointer ? \"pointer\" : void 0\n }), getVariantStyles({ theme, variant })), sizeStyles), {\n \"&:disabled, &[data-disabled]\": {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[1],\n color: theme.colors.dark[2],\n opacity: 0.6,\n cursor: \"not-allowed\",\n pointerEvents: \"none\",\n \"&::placeholder\": {\n color: theme.colors.dark[2]\n }\n },\n \"&[data-invalid]\": {\n color: invalidColor,\n borderColor: invalidColor,\n \"&::placeholder\": {\n opacity: 1,\n color: invalidColor\n }\n },\n \"&[data-with-icon]\": {\n paddingLeft: typeof iconWidth === \"number\" ? rem(iconWidth) : getSize({ size, sizes })\n },\n \"&::placeholder\": __spreadProps(__spreadValues({}, theme.fn.placeholderStyles()), {\n opacity: 1\n }),\n \"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button, &::-webkit-search-decoration, &::-webkit-search-cancel-button, &::-webkit-search-results-button, &::-webkit-search-results-decoration\": {\n appearance: \"none\"\n },\n \"&[type=number]\": {\n MozAppearance: \"textfield\"\n }\n }),\n icon: {\n pointerEvents: \"none\",\n position: \"absolute\",\n zIndex: 1,\n left: 0,\n top: 0,\n bottom: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: iconWidth ? rem(iconWidth) : getSize({ size, sizes }),\n color: invalid ? theme.colors.red[theme.colorScheme === \"dark\" ? 6 : 7] : theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[5]\n },\n rightSection: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n right: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: rightSectionWidth || getSize({ size, sizes })\n }\n };\n});\n\nexport default useStyles;\nexport { sizes };\n//# sourceMappingURL=Input.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps, rem } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { InputWrapper } from './InputWrapper/InputWrapper.js';\nimport { InputDescription } from './InputDescription/InputDescription.js';\nimport { InputLabel } from './InputLabel/InputLabel.js';\nimport { InputError } from './InputError/InputError.js';\nimport { InputPlaceholder } from './InputPlaceholder/InputPlaceholder.js';\nimport { useInputWrapperContext } from './InputWrapper.context.js';\nimport useStyles from './Input.styles.js';\nimport { extractSystemStyles } from '../Box/style-system-props/extract-system-styles/extract-system-styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\",\n variant: \"default\"\n};\nconst _Input = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Input\", defaultProps, props), {\n className,\n error,\n required,\n disabled,\n variant,\n icon,\n style,\n rightSectionWidth,\n iconWidth,\n rightSection,\n rightSectionProps,\n radius,\n size,\n wrapperProps,\n classNames,\n styles,\n __staticSelector,\n multiline,\n sx,\n unstyled,\n pointer\n } = _a, others = __objRest(_a, [\n \"className\",\n \"error\",\n \"required\",\n \"disabled\",\n \"variant\",\n \"icon\",\n \"style\",\n \"rightSectionWidth\",\n \"iconWidth\",\n \"rightSection\",\n \"rightSectionProps\",\n \"radius\",\n \"size\",\n \"wrapperProps\",\n \"classNames\",\n \"styles\",\n \"__staticSelector\",\n \"multiline\",\n \"sx\",\n \"unstyled\",\n \"pointer\"\n ]);\n const { offsetBottom, offsetTop, describedBy } = useInputWrapperContext();\n const { classes, cx } = useStyles({\n radius,\n multiline,\n invalid: !!error,\n rightSectionWidth: rightSectionWidth ? rem(rightSectionWidth) : void 0,\n iconWidth,\n withRightSection: !!rightSection,\n offsetBottom,\n offsetTop,\n pointer\n }, { classNames, styles, name: [\"Input\", __staticSelector], unstyled, variant, size });\n const { systemStyles, rest } = extractSystemStyles(others);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues(__spreadValues({\n className: cx(classes.wrapper, className),\n sx,\n style\n }, systemStyles), wrapperProps), icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.icon\n }, icon), /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({\n component: \"input\"\n }, rest), {\n ref,\n required,\n \"aria-invalid\": !!error,\n \"aria-describedby\": describedBy,\n disabled,\n \"data-disabled\": disabled || void 0,\n \"data-with-icon\": !!icon || void 0,\n \"data-invalid\": !!error || void 0,\n className: classes.input\n })), rightSection && /* @__PURE__ */ React.createElement(\"div\", __spreadProps(__spreadValues({}, rightSectionProps), {\n className: classes.rightSection\n }), rightSection));\n});\n_Input.displayName = \"@mantine/core/Input\";\n_Input.Wrapper = InputWrapper;\n_Input.Label = InputLabel;\n_Input.Description = InputDescription;\n_Input.Error = InputError;\n_Input.Placeholder = InputPlaceholder;\nconst Input = createPolymorphicComponent(_Input);\n\nexport { Input, _Input };\n//# sourceMappingURL=Input.js.map\n","import React from 'react';\nimport { rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction AvatarPlaceholderIcon(props) {\n const _a = props, { style } = _a, others = __objRest(_a, [\"style\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: __spreadValues({ width: rem(15), height: rem(15) }, style)\n }, others), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M0.877014 7.49988C0.877014 3.84219 3.84216 0.877045 7.49985 0.877045C11.1575 0.877045 14.1227 3.84219 14.1227 7.49988C14.1227 11.1575 11.1575 14.1227 7.49985 14.1227C3.84216 14.1227 0.877014 11.1575 0.877014 7.49988ZM7.49985 1.82704C4.36683 1.82704 1.82701 4.36686 1.82701 7.49988C1.82701 8.97196 2.38774 10.3131 3.30727 11.3213C4.19074 9.94119 5.73818 9.02499 7.50023 9.02499C9.26206 9.02499 10.8093 9.94097 11.6929 11.3208C12.6121 10.3127 13.1727 8.97172 13.1727 7.49988C13.1727 4.36686 10.6328 1.82704 7.49985 1.82704ZM10.9818 11.9787C10.2839 10.7795 8.9857 9.97499 7.50023 9.97499C6.01458 9.97499 4.71624 10.7797 4.01845 11.9791C4.97952 12.7272 6.18765 13.1727 7.49985 13.1727C8.81227 13.1727 10.0206 12.727 10.9818 11.9787ZM5.14999 6.50487C5.14999 5.207 6.20212 4.15487 7.49999 4.15487C8.79786 4.15487 9.84999 5.207 9.84999 6.50487C9.84999 7.80274 8.79786 8.85487 7.49999 8.85487C6.20212 8.85487 5.14999 7.80274 5.14999 6.50487ZM7.49999 5.10487C6.72679 5.10487 6.09999 5.73167 6.09999 6.50487C6.09999 7.27807 6.72679 7.90487 7.49999 7.90487C8.27319 7.90487 8.89999 7.27807 8.89999 6.50487C8.89999 5.73167 8.27319 5.10487 7.49999 5.10487Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }));\n}\n\nexport { AvatarPlaceholderIcon };\n//# sourceMappingURL=AvatarPlaceholderIcon.js.map\n","import React, { createContext, useContext } from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst AvatarGroupContext = createContext(null);\nfunction AvatarGroupProvider({ spacing, children }) {\n return /* @__PURE__ */ React.createElement(AvatarGroupContext.Provider, {\n value: { spacing }\n }, children);\n}\nfunction useAvatarGroupContext() {\n const ctx = useContext(AvatarGroupContext);\n if (ctx) {\n return __spreadProps(__spreadValues({}, ctx), { withinGroup: true });\n }\n return { spacing: null, withinGroup: false };\n}\n\nexport { AvatarGroupProvider, useAvatarGroupContext };\n//# sourceMappingURL=AvatarGroup.context.js.map\n","import { createStyles, getSize } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { spacing }) => ({\n root: {\n display: \"flex\",\n paddingLeft: getSize({ size: spacing, sizes: theme.spacing })\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=AvatarGroup.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { AvatarGroupProvider } from './AvatarGroup.context.js';\nimport useStyles from './AvatarGroup.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst AvatarGroup = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"AvatarGroup\", defaultProps, props), {\n children,\n spacing = \"sm\",\n unstyled,\n className,\n variant\n } = _a, others = __objRest(_a, [\n \"children\",\n \"spacing\",\n \"unstyled\",\n \"className\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles({ spacing }, { name: \"AvatarGroup\", unstyled, variant });\n return /* @__PURE__ */ React.createElement(AvatarGroupProvider, {\n spacing\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, className)\n }, others), children));\n});\nAvatarGroup.displayName = \"@mantine/core/AvatarGroup\";\n\nexport { AvatarGroup };\n//# sourceMappingURL=AvatarGroup.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst AVATAR_VARIANTS = [\"filled\", \"light\", \"gradient\", \"outline\"];\nconst sizes = {\n xs: rem(16),\n sm: rem(26),\n md: rem(38),\n lg: rem(56),\n xl: rem(84)\n};\nfunction getGroupStyles({ withinGroup, spacing, theme }) {\n if (!withinGroup) {\n return null;\n }\n return {\n marginLeft: `calc(${getSize({ size: spacing, sizes: theme.spacing })} * -1)`,\n backgroundColor: `${theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white}`,\n border: `${rem(2)} solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white}`\n };\n}\nfunction getVariantStyles({ theme, variant, color, gradient }) {\n const colors = theme.fn.variant({ variant, color, gradient });\n if (AVATAR_VARIANTS.includes(variant)) {\n return {\n placeholder: {\n color: colors.color,\n backgroundColor: colors.background,\n backgroundImage: variant === \"gradient\" ? colors.background : void 0,\n border: `${rem(variant === \"gradient\" ? 0 : 1)} solid ${colors.border}`\n },\n placeholderIcon: {\n color: colors.color\n }\n };\n }\n return {};\n}\nvar useStyles = createStyles((theme, { radius, withinGroup, spacing, color, gradient }, { variant, size }) => {\n const variantStyles = getVariantStyles({ theme, color, gradient, variant });\n return {\n root: __spreadValues(__spreadProps(__spreadValues({}, theme.fn.focusStyles()), {\n WebkitTapHighlightColor: \"transparent\",\n boxSizing: \"border-box\",\n position: \"relative\",\n display: \"block\",\n userSelect: \"none\",\n overflow: \"hidden\",\n borderRadius: theme.fn.radius(radius),\n textDecoration: \"none\",\n border: 0,\n backgroundColor: \"transparent\",\n padding: 0,\n width: getSize({ size, sizes }),\n minWidth: getSize({ size, sizes }),\n height: getSize({ size, sizes })\n }), getGroupStyles({ withinGroup, spacing, theme })),\n image: {\n objectFit: \"cover\",\n width: \"100%\",\n height: \"100%\",\n display: \"block\"\n },\n placeholder: __spreadValues(__spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n fontWeight: 700,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n userSelect: \"none\",\n borderRadius: theme.fn.radius(radius),\n fontSize: `calc(${getSize({ size, sizes })} / 2.5)`\n }), variantStyles.placeholder),\n placeholderIcon: __spreadValues({\n width: \"70%\",\n height: \"70%\"\n }, variantStyles.placeholderIcon)\n };\n});\n\nexport default useStyles;\nexport { AVATAR_VARIANTS, sizes };\n//# sourceMappingURL=Avatar.styles.js.map\n","import React, { forwardRef, useState, useEffect } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { AvatarPlaceholderIcon } from './AvatarPlaceholderIcon.js';\nimport { AvatarGroup } from './AvatarGroup/AvatarGroup.js';\nimport { useAvatarGroupContext } from './AvatarGroup/AvatarGroup.context.js';\nimport useStyles from './Avatar.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"md\",\n color: \"gray\",\n variant: \"light\"\n};\nconst _Avatar = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Avatar\", defaultProps, props), {\n className,\n size,\n src,\n alt,\n radius,\n children,\n color,\n variant,\n gradient,\n classNames,\n styles,\n imageProps,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"size\",\n \"src\",\n \"alt\",\n \"radius\",\n \"children\",\n \"color\",\n \"variant\",\n \"gradient\",\n \"classNames\",\n \"styles\",\n \"imageProps\",\n \"unstyled\"\n ]);\n const ctx = useAvatarGroupContext();\n const [error, setError] = useState(!src);\n const { classes, cx } = useStyles({ color, radius, withinGroup: ctx.withinGroup, spacing: ctx.spacing, gradient }, { classNames, styles, unstyled, name: \"Avatar\", variant, size });\n useEffect(() => {\n !src ? setError(true) : setError(false);\n }, [src]);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: \"div\",\n className: cx(classes.root, className),\n ref\n }, others), error ? /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.placeholder,\n title: alt\n }, children || /* @__PURE__ */ React.createElement(AvatarPlaceholderIcon, {\n className: classes.placeholderIcon\n })) : /* @__PURE__ */ React.createElement(\"img\", __spreadProps(__spreadValues({}, imageProps), {\n className: classes.image,\n src,\n alt,\n onError: () => setError(true)\n })));\n});\n_Avatar.displayName = \"@mantine/core/Avatar\";\n_Avatar.Group = AvatarGroup;\nconst Avatar = createPolymorphicComponent(_Avatar);\n\nexport { Avatar, _Avatar };\n//# sourceMappingURL=Avatar.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nconst sizes = {\n xs: rem(12),\n sm: rem(18),\n md: rem(24),\n lg: rem(34),\n xl: rem(42)\n};\nvar useStyles = createStyles((theme, { color, transitionDuration }, { size }) => {\n const sizeValue = getSize({ size, sizes });\n const _color = color || (theme.colorScheme === \"dark\" ? theme.white : theme.black);\n return {\n root: {\n borderRadius: theme.radius.sm,\n width: `calc(${sizeValue} + ${theme.spacing.xs})`,\n height: `calc(${sizeValue} + ${theme.spacing.xs})`,\n padding: `calc(${theme.spacing.xs} / 2)`,\n cursor: \"pointer\"\n },\n burger: {\n position: \"relative\",\n userSelect: \"none\",\n boxSizing: \"border-box\",\n \"&, &::before, &::after\": {\n display: \"block\",\n width: sizeValue,\n height: `calc(${sizeValue} / 12)`,\n backgroundColor: _color,\n outline: `${rem(1)} solid transparent`,\n transitionProperty: \"background-color, transform\",\n transitionDuration: `${transitionDuration}ms`,\n \"@media (prefers-reduced-motion)\": {\n transitionDuration: theme.respectReducedMotion ? \"0ms\" : void 0\n }\n },\n \"&::before, &::after\": {\n position: \"absolute\",\n content: '\"\"',\n left: 0\n },\n \"&::before\": {\n top: `calc((${sizeValue} / 3) * -1)`\n },\n \"&::after\": {\n top: `calc(${sizeValue} / 3)`\n },\n \"&[data-opened]\": {\n backgroundColor: \"transparent\",\n \"&::before\": {\n transform: `translateY(calc(${sizeValue} / 3)) rotate(45deg)`\n },\n \"&::after\": {\n transform: `translateY(calc(-${sizeValue} / 3)) rotate(-45deg)`\n }\n }\n }\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=Burger.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './Burger.styles.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"md\",\n transitionDuration: 300\n};\nconst Burger = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Burger\", defaultProps, props), {\n className,\n opened,\n color,\n size,\n classNames,\n styles,\n transitionDuration,\n variant\n } = _a, others = __objRest(_a, [\n \"className\",\n \"opened\",\n \"color\",\n \"size\",\n \"classNames\",\n \"styles\",\n \"transitionDuration\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles({ color, transitionDuration }, { classNames, styles, name: \"Burger\", variant, size });\n return /* @__PURE__ */ React.createElement(UnstyledButton, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n \"data-opened\": opened || void 0,\n className: classes.burger\n }));\n});\nBurger.displayName = \"@mantine/core/Burger\";\n\nexport { Burger };\n//# sourceMappingURL=Burger.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((_theme, { orientation, buttonBorderWidth }) => ({\n root: {\n display: \"flex\",\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\",\n \"& [data-button]\": {\n \"&:first-of-type:not(:last-of-type)\": {\n borderBottomRightRadius: 0,\n [orientation === \"vertical\" ? \"borderBottomLeftRadius\" : \"borderTopRightRadius\"]: 0,\n [orientation === \"vertical\" ? \"borderBottomWidth\" : \"borderRightWidth\"]: `calc(${rem(buttonBorderWidth)} / 2)`\n },\n \"&:last-of-type:not(:first-of-type)\": {\n borderTopLeftRadius: 0,\n [orientation === \"vertical\" ? \"borderTopRightRadius\" : \"borderBottomLeftRadius\"]: 0,\n [orientation === \"vertical\" ? \"borderTopWidth\" : \"borderLeftWidth\"]: `calc(${rem(buttonBorderWidth)} / 2)`\n },\n \"&:not(:first-of-type):not(:last-of-type)\": {\n borderRadius: 0,\n [orientation === \"vertical\" ? \"borderTopWidth\" : \"borderLeftWidth\"]: `calc(${rem(buttonBorderWidth)} / 2)`,\n [orientation === \"vertical\" ? \"borderBottomWidth\" : \"borderRightWidth\"]: `calc(${rem(buttonBorderWidth)} / 2)`\n },\n \"& + [data-button]\": {\n [orientation === \"vertical\" ? \"marginTop\" : \"marginLeft\"]: `calc(${buttonBorderWidth} * -1)`,\n \"@media (min-resolution: 192dpi)\": {\n [orientation === \"vertical\" ? \"marginTop\" : \"marginLeft\"]: 0\n }\n }\n }\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ButtonGroup.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './ButtonGroup.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n orientation: \"horizontal\",\n buttonBorderWidth: 1\n};\nconst ButtonGroup = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ButtonGroup\", defaultProps, props), { className, orientation, buttonBorderWidth, unstyled } = _a, others = __objRest(_a, [\"className\", \"orientation\", \"buttonBorderWidth\", \"unstyled\"]);\n const { classes, cx } = useStyles({ orientation, buttonBorderWidth }, { name: \"ButtonGroup\", unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others));\n});\nButtonGroup.displayName = \"@mantine/core/ButtonGroup\";\n\nexport { ButtonGroup };\n//# sourceMappingURL=ButtonGroup.js.map\n","import { createStyles, rem, getSize } from '@mantine/styles';\nimport { sizes as sizes$1 } from '../Input/Input.styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst BUTTON_VARIANTS = [\n \"filled\",\n \"outline\",\n \"light\",\n \"white\",\n \"default\",\n \"subtle\",\n \"gradient\"\n];\nconst sizes = {\n xs: { height: sizes$1.xs, paddingLeft: rem(14), paddingRight: rem(14) },\n sm: { height: sizes$1.sm, paddingLeft: rem(18), paddingRight: rem(18) },\n md: { height: sizes$1.md, paddingLeft: rem(22), paddingRight: rem(22) },\n lg: { height: sizes$1.lg, paddingLeft: rem(26), paddingRight: rem(26) },\n xl: { height: sizes$1.xl, paddingLeft: rem(32), paddingRight: rem(32) },\n \"compact-xs\": { height: rem(22), paddingLeft: rem(7), paddingRight: rem(7) },\n \"compact-sm\": { height: rem(26), paddingLeft: rem(8), paddingRight: rem(8) },\n \"compact-md\": { height: rem(30), paddingLeft: rem(10), paddingRight: rem(10) },\n \"compact-lg\": { height: rem(34), paddingLeft: rem(12), paddingRight: rem(12) },\n \"compact-xl\": { height: rem(40), paddingLeft: rem(14), paddingRight: rem(14) }\n};\nfunction getSizeStyles({ compact, size, withLeftIcon, withRightIcon }) {\n if (compact) {\n return sizes[`compact-${size}`];\n }\n const _sizes = sizes[size];\n if (!_sizes) {\n return {};\n }\n return __spreadProps(__spreadValues({}, _sizes), {\n paddingLeft: withLeftIcon ? `calc(${_sizes.paddingLeft} / 1.5)` : _sizes.paddingLeft,\n paddingRight: withRightIcon ? `calc(${_sizes.paddingRight} / 1.5)` : _sizes.paddingRight\n });\n}\nconst getWidthStyles = (fullWidth) => ({\n display: fullWidth ? \"block\" : \"inline-block\",\n width: fullWidth ? \"100%\" : \"auto\"\n});\nfunction getVariantStyles({ variant, theme, color, gradient }) {\n if (!BUTTON_VARIANTS.includes(variant)) {\n return null;\n }\n const colors = theme.fn.variant({ color, variant, gradient });\n if (variant === \"gradient\") {\n return __spreadValues({\n border: 0,\n backgroundImage: colors.background,\n color: colors.color\n }, theme.fn.hover({ backgroundSize: \"200%\" }));\n }\n return __spreadValues({\n border: `${rem(1)} solid ${colors.border}`,\n backgroundColor: colors.background,\n color: colors.color\n }, theme.fn.hover({ backgroundColor: colors.hover }));\n}\nvar useStyles = createStyles((theme, {\n radius,\n fullWidth,\n compact,\n withLeftIcon,\n withRightIcon,\n color,\n gradient\n}, { variant, size }) => ({\n root: __spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, getSizeStyles({ compact, size, withLeftIcon, withRightIcon })), theme.fn.fontStyles()), theme.fn.focusStyles()), getWidthStyles(fullWidth)), {\n borderRadius: theme.fn.radius(radius),\n fontWeight: 600,\n position: \"relative\",\n lineHeight: 1,\n fontSize: getSize({ size, sizes: theme.fontSizes }),\n userSelect: \"none\",\n cursor: \"pointer\"\n }), getVariantStyles({ variant, theme, color, gradient })), {\n \"&:active\": theme.activeStyles,\n \"&:disabled, &[data-disabled]\": {\n borderColor: \"transparent\",\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2],\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[5],\n cursor: \"not-allowed\",\n backgroundImage: \"none\",\n pointerEvents: \"none\",\n \"&:active\": {\n transform: \"none\"\n }\n },\n \"&[data-loading]\": {\n pointerEvents: \"none\",\n \"&::before\": __spreadProps(__spreadValues({\n content: '\"\"'\n }, theme.fn.cover(rem(-1))), {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.colors.dark[7], 0.5) : \"rgba(255, 255, 255, .5)\",\n borderRadius: theme.fn.radius(radius),\n cursor: \"not-allowed\"\n })\n }\n }),\n icon: {\n display: \"flex\",\n alignItems: \"center\"\n },\n leftIcon: {\n marginRight: theme.spacing.xs\n },\n rightIcon: {\n marginLeft: theme.spacing.xs\n },\n centerLoader: {\n position: \"absolute\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n opacity: 0.5\n },\n inner: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n overflow: \"visible\"\n },\n label: {\n whiteSpace: \"nowrap\",\n height: \"100%\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\"\n }\n}));\n\nexport default useStyles;\nexport { BUTTON_VARIANTS, sizes };\n//# sourceMappingURL=Button.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps, getSize } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { ButtonGroup } from './ButtonGroup/ButtonGroup.js';\nimport useStyles, { sizes } from './Button.styles.js';\nimport { Loader } from '../Loader/Loader.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\",\n type: \"button\",\n variant: \"filled\",\n loaderPosition: \"left\"\n};\nconst _Button = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Button\", defaultProps, props), {\n className,\n size,\n color,\n type,\n disabled,\n children,\n leftIcon,\n rightIcon,\n fullWidth,\n variant,\n radius,\n uppercase,\n compact,\n loading,\n loaderPosition,\n loaderProps,\n gradient,\n classNames,\n styles,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"size\",\n \"color\",\n \"type\",\n \"disabled\",\n \"children\",\n \"leftIcon\",\n \"rightIcon\",\n \"fullWidth\",\n \"variant\",\n \"radius\",\n \"uppercase\",\n \"compact\",\n \"loading\",\n \"loaderPosition\",\n \"loaderProps\",\n \"gradient\",\n \"classNames\",\n \"styles\",\n \"unstyled\"\n ]);\n const { classes, cx, theme } = useStyles({\n radius,\n color,\n fullWidth,\n compact,\n gradient,\n withLeftIcon: !!leftIcon,\n withRightIcon: !!rightIcon\n }, { name: \"Button\", unstyled, classNames, styles, variant, size });\n const colors = theme.fn.variant({ color, variant });\n const loader = /* @__PURE__ */ React.createElement(Loader, __spreadValues({\n color: colors.color,\n size: `calc(${getSize({ size, sizes }).height} / 2)`\n }, loaderProps));\n return /* @__PURE__ */ React.createElement(UnstyledButton, __spreadValues({\n className: cx(classes.root, className),\n type,\n disabled,\n \"data-button\": true,\n \"data-disabled\": disabled || void 0,\n \"data-loading\": loading || void 0,\n ref,\n unstyled\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.inner\n }, (leftIcon || loading && loaderPosition === \"left\") && /* @__PURE__ */ React.createElement(\"span\", {\n className: cx(classes.icon, classes.leftIcon)\n }, loading && loaderPosition === \"left\" ? loader : leftIcon), loading && loaderPosition === \"center\" && /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.centerLoader\n }, loader), /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.label,\n style: { textTransform: uppercase ? \"uppercase\" : void 0 }\n }, children), (rightIcon || loading && loaderPosition === \"right\") && /* @__PURE__ */ React.createElement(\"span\", {\n className: cx(classes.icon, classes.rightIcon)\n }, loading && loaderPosition === \"right\" ? loader : rightIcon)));\n});\n_Button.displayName = \"@mantine/core/Button\";\n_Button.Group = ButtonGroup;\nconst Button = createPolymorphicComponent(_Button);\n\nexport { Button, _Button };\n//# sourceMappingURL=Button.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { radius, shadow }) => ({\n root: {\n outline: 0,\n WebkitTapHighlightColor: \"transparent\",\n display: \"block\",\n textDecoration: \"none\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n boxSizing: \"border-box\",\n borderRadius: theme.fn.radius(radius),\n boxShadow: theme.shadows[shadow] || shadow || \"none\",\n \"&[data-with-border]\": {\n border: `${rem(1)} solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3]}`\n }\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Paper.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Paper.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst _Paper = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Paper\", defaultProps, props), { className, children, radius, withBorder, shadow, unstyled, variant } = _a, others = __objRest(_a, [\"className\", \"children\", \"radius\", \"withBorder\", \"shadow\", \"unstyled\", \"variant\"]);\n const { classes, cx } = useStyles({ radius, shadow }, { name: \"Paper\", unstyled, variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n \"data-with-border\": withBorder || void 0,\n ref\n }, others), children);\n});\n_Paper.displayName = \"@mantine/core/Paper\";\nconst Paper = createPolymorphicComponent(_Paper);\n\nexport { Paper, _Paper };\n//# sourceMappingURL=Paper.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { inline }) => ({\n root: {\n display: inline ? \"inline-flex\" : \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Center.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Center.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst _Center = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Center\", {}, props), { inline, className, unstyled, variant } = _a, others = __objRest(_a, [\"inline\", \"className\", \"unstyled\", \"variant\"]);\n const { classes, cx } = useStyles({ inline }, { name: \"Center\", unstyled, variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, className)\n }, others));\n});\n_Center.displayName = \"@mantine/core/Center\";\nconst Center = createPolymorphicComponent(_Center);\n\nexport { Center, _Center };\n//# sourceMappingURL=Center.js.map\n","import { createStyles, getSize } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { fluid, sizes }, { size }) => ({\n root: {\n paddingLeft: theme.spacing.md,\n paddingRight: theme.spacing.md,\n maxWidth: fluid ? \"100%\" : getSize({ size, sizes }),\n marginLeft: \"auto\",\n marginRight: \"auto\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Container.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { rem, useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './Container.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n sizes: {\n xs: rem(540),\n sm: rem(720),\n md: rem(960),\n lg: rem(1140),\n xl: rem(1320)\n }\n};\nconst Container = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Container\", defaultProps, props), { className, fluid, size, unstyled, sizes, variant } = _a, others = __objRest(_a, [\"className\", \"fluid\", \"size\", \"unstyled\", \"sizes\", \"variant\"]);\n const { classes, cx } = useStyles({ fluid, sizes }, { unstyled, name: \"Container\", variant, size });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others));\n});\nContainer.displayName = \"@mantine/core/Container\";\n\nexport { Container };\n//# sourceMappingURL=Container.js.map\n","import { createSafeContext } from '@mantine/utils';\n\nconst [DrawerProvider, useDrawerContext] = createSafeContext(\"Drawer component was not found in tree\");\n\nexport { DrawerProvider, useDrawerContext };\n//# sourceMappingURL=Drawer.context.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nconst sizes = {\n xs: rem(320),\n sm: rem(380),\n md: rem(440),\n lg: rem(620),\n xl: rem(780)\n};\nvar useStyles = createStyles((theme, { position }, { size }) => ({\n header: {\n zIndex: 1e3\n },\n content: {\n flex: position === \"right\" || position === \"left\" ? `0 0 ${getSize({ size, sizes })}` : \"0 0 100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n height: position === \"right\" || position === \"left\" ? \"100%\" : getSize({ size, sizes }),\n borderRadius: 0,\n overflowY: \"auto\"\n },\n inner: {\n display: \"flex\",\n justifyContent: position === \"right\" ? \"flex-end\" : \"flex-start\",\n alignItems: position === \"bottom\" ? \"flex-end\" : \"flex-start\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=DrawerRoot.styles.js.map\n","import { createSafeContext } from '@mantine/utils';\n\nconst [ModalBaseProvider, useModalBaseContext] = createSafeContext(\"ModalBase component was not found in tree\");\n\nexport { ModalBaseProvider, useModalBaseContext };\n//# sourceMappingURL=ModalBase.context.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles(() => ({\n close: {\n marginLeft: \"auto\",\n marginRight: 0\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalBaseCloseButton.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useModalBaseContext } from '../ModalBase.context.js';\nimport useStyles from './ModalBaseCloseButton.styles.js';\nimport { CloseButton } from '../../CloseButton/CloseButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\"\n};\nconst ModalBaseCloseButton = forwardRef((props, ref) => {\n const ctx = useModalBaseContext();\n const _a = useComponentDefaultProps(`${ctx.__staticSelector}CloseButton`, defaultProps, props), { className } = _a, others = __objRest(_a, [\"className\"]);\n const { classes, cx } = useStyles(null, ctx.stylesApi);\n return /* @__PURE__ */ React.createElement(CloseButton, __spreadValues({\n className: cx(classes.close, className),\n ref,\n onClick: ctx.onClose\n }, others));\n});\n\nexport { ModalBaseCloseButton };\n//# sourceMappingURL=ModalBaseCloseButton.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles(() => ({\n overlay: {}\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalBaseOverlay.styles.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme, { color, opacity, blur, radius, gradient, fixed, zIndex }) => ({\n root: __spreadProps(__spreadValues({}, theme.fn.cover(0)), {\n position: fixed ? \"fixed\" : \"absolute\",\n backgroundColor: gradient ? void 0 : theme.fn.rgba(color, opacity),\n backgroundImage: gradient,\n backdropFilter: blur ? `blur(${rem(blur)})` : void 0,\n borderRadius: theme.fn.radius(radius),\n zIndex,\n \"&[data-center]\": {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n })\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Overlay.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { getDefaultZIndex, useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Overlay.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n opacity: 0.6,\n color: \"#000\",\n zIndex: getDefaultZIndex(\"modal\"),\n radius: 0\n};\nconst _Overlay = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Overlay\", defaultProps, props), {\n variant,\n opacity,\n color,\n blur,\n gradient,\n zIndex,\n radius,\n children,\n className,\n classNames,\n styles,\n unstyled,\n center,\n fixed\n } = _a, others = __objRest(_a, [\n \"variant\",\n \"opacity\",\n \"color\",\n \"blur\",\n \"gradient\",\n \"zIndex\",\n \"radius\",\n \"children\",\n \"className\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"center\",\n \"fixed\"\n ]);\n const { classes, cx } = useStyles({ color, opacity, blur, radius, gradient, fixed, zIndex }, { name: \"Overlay\", classNames, styles, unstyled, variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, className),\n \"data-center\": center || void 0\n }, others), children);\n});\n_Overlay.displayName = \"@mantine/core/Overlay\";\nconst Overlay = createPolymorphicComponent(_Overlay);\n\nexport { Overlay };\n//# sourceMappingURL=Overlay.js.map\n","import { useComponentDefaultProps } from '@mantine/styles';\nimport React, { forwardRef } from 'react';\nimport { useModalBaseContext } from '../ModalBase.context.js';\nimport useStyles from './ModalBaseOverlay.styles.js';\nimport { Transition } from '../../Transition/Transition.js';\nimport { Overlay } from '../../Overlay/Overlay.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst ModalBaseOverlay = forwardRef((props, ref) => {\n const ctx = useModalBaseContext();\n const _a = useComponentDefaultProps(`${ctx.__staticSelector}Overlay`, defaultProps, props), { onClick, transitionProps, style, className } = _a, others = __objRest(_a, [\"onClick\", \"transitionProps\", \"style\", \"className\"]);\n const { classes, cx } = useStyles(null, ctx.stylesApi);\n const handleClick = (event) => {\n onClick == null ? void 0 : onClick(event);\n ctx.closeOnClickOutside && ctx.onClose();\n };\n return /* @__PURE__ */ React.createElement(Transition, __spreadProps(__spreadValues(__spreadValues({\n mounted: ctx.opened\n }, ctx.transitionProps), transitionProps), {\n transition: \"fade\"\n }), (transitionStyles) => /* @__PURE__ */ React.createElement(Overlay, __spreadValues({\n ref,\n onClick: handleClick,\n fixed: true,\n style: __spreadValues(__spreadValues({}, style), transitionStyles),\n className: cx(classes.overlay, className),\n zIndex: ctx.zIndex\n }, others)));\n});\n\nexport { ModalBaseOverlay };\n//# sourceMappingURL=ModalBaseOverlay.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((_theme, { zIndex }) => ({\n inner: {\n position: \"fixed\",\n width: \"100%\",\n top: 0,\n bottom: 0,\n maxHeight: \"100%\",\n zIndex,\n pointerEvents: \"none\"\n },\n content: {\n pointerEvents: \"all\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalBaseContent.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useModalBaseContext } from '../ModalBase.context.js';\nimport useStyles from './ModalBaseContent.styles.js';\nimport { Transition } from '../../Transition/Transition.js';\nimport { FocusTrap } from '../../FocusTrap/FocusTrap.js';\nimport { Paper } from '../../Paper/Paper.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst ModalBaseContent = forwardRef((props, ref) => {\n const ctx = useModalBaseContext();\n const _a = useComponentDefaultProps(`${ctx.__staticSelector}Content`, defaultProps, props), { className, transitionProps, style, onKeyDown } = _a, others = __objRest(_a, [\"className\", \"transitionProps\", \"style\", \"onKeyDown\"]);\n const { classes, cx } = useStyles({ zIndex: ctx.zIndex + 1 }, ctx.stylesApi);\n const handleKeyDown = (event) => {\n var _a2;\n const shouldTrigger = ((_a2 = event.target) == null ? void 0 : _a2.getAttribute(\"data-mantine-stop-propagation\")) !== \"true\";\n shouldTrigger && event.key === \"Escape\" && ctx.closeOnEscape && ctx.onClose();\n onKeyDown == null ? void 0 : onKeyDown(event);\n };\n return /* @__PURE__ */ React.createElement(Transition, __spreadValues(__spreadValues({\n mounted: ctx.opened,\n transition: \"pop\"\n }, ctx.transitionProps), transitionProps), (transitionStyles) => /* @__PURE__ */ React.createElement(\"div\", {\n className: cx(classes.inner)\n }, /* @__PURE__ */ React.createElement(FocusTrap, {\n active: ctx.opened && ctx.trapFocus\n }, /* @__PURE__ */ React.createElement(Paper, __spreadValues({\n component: \"section\",\n role: \"dialog\",\n tabIndex: -1,\n \"aria-modal\": true,\n \"aria-describedby\": ctx.bodyMounted ? ctx.getBodyId() : void 0,\n \"aria-labelledby\": ctx.titleMounted ? ctx.getTitleId() : void 0,\n onKeyDown: handleKeyDown,\n ref,\n className: cx(classes.content, className),\n style: __spreadValues(__spreadValues({}, style), transitionStyles),\n shadow: ctx.shadow\n }, others), others.children))));\n});\n\nexport { ModalBaseContent };\n//# sourceMappingURL=ModalBaseContent.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { padding }) => {\n const paddingValue = getSize({ size: padding, sizes: theme.spacing });\n return {\n header: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: paddingValue,\n paddingRight: `calc(${paddingValue} - ${rem(5)})`,\n position: \"sticky\",\n top: 0,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n zIndex: 1e3\n }\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=ModalBaseHeader.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useModalBaseContext } from '../ModalBase.context.js';\nimport useStyles from './ModalBaseHeader.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst ModalBaseHeader = forwardRef((props, ref) => {\n const ctx = useModalBaseContext();\n const _a = useComponentDefaultProps(`${ctx.__staticSelector}Header`, defaultProps, props), { className } = _a, others = __objRest(_a, [\"className\"]);\n const { classes, cx } = useStyles({ padding: ctx.padding }, ctx.stylesApi);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.header, className)\n }, others));\n});\n\nexport { ModalBaseHeader };\n//# sourceMappingURL=ModalBaseHeader.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme) => ({\n title: {\n lineHeight: 1,\n padding: 0,\n margin: 0,\n fontWeight: 400,\n fontSize: theme.fontSizes.md\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalBaseTitle.styles.js.map\n","import React, { forwardRef, useEffect } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useModalBaseContext } from '../ModalBase.context.js';\nimport useStyles from './ModalBaseTitle.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst ModalBaseTitle = forwardRef((props, ref) => {\n const ctx = useModalBaseContext();\n const _a = useComponentDefaultProps(`${ctx.__staticSelector}Title`, defaultProps, props), { className } = _a, others = __objRest(_a, [\"className\"]);\n const { classes, cx } = useStyles(null, ctx.stylesApi);\n useEffect(() => {\n ctx.setTitleMounted(true);\n return () => ctx.setTitleMounted(false);\n }, []);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: \"h2\",\n id: ctx.getTitleId(),\n className: cx(classes.title, className),\n ref\n }, others));\n});\n\nexport { ModalBaseTitle };\n//# sourceMappingURL=ModalBaseTitle.js.map\n","import { createStyles, getSize } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { padding }) => ({\n body: {\n padding: getSize({ size: padding, sizes: theme.spacing }),\n \"&:not(:only-child)\": {\n paddingTop: 0\n }\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalBaseBody.styles.js.map\n","import React, { forwardRef, useEffect } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useModalBaseContext } from '../ModalBase.context.js';\nimport useStyles from './ModalBaseBody.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst ModalBaseBody = forwardRef((props, ref) => {\n const ctx = useModalBaseContext();\n const _a = useComponentDefaultProps(`${ctx.__staticSelector}Body`, defaultProps, props), { className } = _a, others = __objRest(_a, [\"className\"]);\n const { classes, cx } = useStyles({ padding: ctx.padding }, ctx.stylesApi);\n useEffect(() => {\n ctx.setBodyMounted(true);\n return () => ctx.setBodyMounted(false);\n }, []);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n id: ctx.getBodyId(),\n className: cx(classes.body, className),\n ref\n }, others));\n});\n\nexport { ModalBaseBody };\n//# sourceMappingURL=ModalBaseBody.js.map\n","import React from 'react';\n\nfunction NativeScrollArea({ children }) {\n return /* @__PURE__ */ React.createElement(React.Fragment, null, children);\n}\n\nexport { NativeScrollArea };\n//# sourceMappingURL=NativeScrollArea.js.map\n","import { useState, useRef, useEffect } from 'react';\nimport { useReducedMotion } from '@mantine/hooks';\n\nfunction useLockScroll({ opened, transitionDuration }) {\n const [shouldLockScroll, setShouldLockScroll] = useState(opened);\n const timeout = useRef();\n const reduceMotion = useReducedMotion();\n const _transitionDuration = reduceMotion ? 0 : transitionDuration;\n useEffect(() => {\n if (opened) {\n setShouldLockScroll(true);\n window.clearTimeout(timeout.current);\n } else if (_transitionDuration === 0) {\n setShouldLockScroll(false);\n } else {\n timeout.current = window.setTimeout(() => setShouldLockScroll(false), _transitionDuration);\n }\n return () => window.clearTimeout(timeout.current);\n }, [opened, _transitionDuration]);\n return shouldLockScroll;\n}\n\nexport { useLockScroll };\n//# sourceMappingURL=use-lock-scroll.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles(() => ({\n root: {}\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalBase.styles.js.map\n","import React, { useState } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { useId, useWindowEvent, useFocusReturn } from '@mantine/hooks';\nimport { getDefaultZIndex, useComponentDefaultProps } from '@mantine/styles';\nimport { ModalBaseProvider } from './ModalBase.context.js';\nimport { ModalBaseCloseButton } from './ModalBaseCloseButton/ModalBaseCloseButton.js';\nimport { ModalBaseOverlay } from './ModalBaseOverlay/ModalBaseOverlay.js';\nimport { ModalBaseContent } from './ModalBaseContent/ModalBaseContent.js';\nimport { ModalBaseHeader } from './ModalBaseHeader/ModalBaseHeader.js';\nimport { ModalBaseTitle } from './ModalBaseTitle/ModalBaseTitle.js';\nimport { ModalBaseBody } from './ModalBaseBody/ModalBaseBody.js';\nimport { NativeScrollArea } from './NativeScrollArea/NativeScrollArea.js';\nimport { useLockScroll } from './use-lock-scroll.js';\nimport useStyles from './ModalBase.styles.js';\nimport { OptionalPortal } from '../Portal/OptionalPortal.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst ModalBaseDefaultProps = {\n closeOnClickOutside: true,\n withinPortal: true,\n lockScroll: true,\n trapFocus: true,\n returnFocus: true,\n closeOnEscape: true,\n keepMounted: false,\n zIndex: getDefaultZIndex(\"modal\"),\n padding: \"md\",\n size: \"md\",\n shadow: \"xl\"\n};\nfunction ModalBase(props) {\n const _a = useComponentDefaultProps(\"ModalBase\", ModalBaseDefaultProps, props), {\n opened,\n onClose,\n children,\n closeOnClickOutside,\n __staticSelector,\n transitionProps,\n withinPortal,\n portalProps,\n keepMounted,\n target,\n zIndex,\n lockScroll,\n trapFocus,\n closeOnEscape,\n returnFocus,\n padding,\n shadow,\n id,\n size,\n variant,\n classNames,\n unstyled,\n styles,\n className\n } = _a, others = __objRest(_a, [\n \"opened\",\n \"onClose\",\n \"children\",\n \"closeOnClickOutside\",\n \"__staticSelector\",\n \"transitionProps\",\n \"withinPortal\",\n \"portalProps\",\n \"keepMounted\",\n \"target\",\n \"zIndex\",\n \"lockScroll\",\n \"trapFocus\",\n \"closeOnEscape\",\n \"returnFocus\",\n \"padding\",\n \"shadow\",\n \"id\",\n \"size\",\n \"variant\",\n \"classNames\",\n \"unstyled\",\n \"styles\",\n \"className\"\n ]);\n const { classes, cx } = useStyles(null, {\n name: __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n size\n });\n const _id = useId(id);\n const [titleMounted, setTitleMounted] = useState(false);\n const [bodyMounted, setBodyMounted] = useState(false);\n const transitionDuration = typeof (transitionProps == null ? void 0 : transitionProps.duration) === \"number\" ? transitionProps == null ? void 0 : transitionProps.duration : 200;\n const shouldLockScroll = useLockScroll({ opened, transitionDuration });\n useWindowEvent(\"keydown\", (event) => {\n if (!trapFocus && event.key === \"Escape\" && closeOnEscape) {\n onClose();\n }\n });\n useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });\n return /* @__PURE__ */ React.createElement(OptionalPortal, __spreadProps(__spreadValues({}, portalProps), {\n withinPortal,\n target\n }), /* @__PURE__ */ React.createElement(ModalBaseProvider, {\n value: {\n __staticSelector,\n opened,\n onClose,\n closeOnClickOutside,\n transitionProps: __spreadProps(__spreadValues({}, transitionProps), { duration: transitionDuration, keepMounted }),\n zIndex,\n padding,\n id: _id,\n getTitleId: () => `${_id}-title`,\n getBodyId: () => `${_id}-body`,\n titleMounted,\n bodyMounted,\n setTitleMounted,\n setBodyMounted,\n trapFocus,\n closeOnEscape,\n shadow,\n stylesApi: {\n name: __staticSelector,\n size,\n variant,\n classNames,\n styles,\n unstyled\n }\n }\n }, /* @__PURE__ */ React.createElement(RemoveScroll, {\n enabled: shouldLockScroll && lockScroll\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className)\n }, others), children))));\n}\nModalBase.CloseButton = ModalBaseCloseButton;\nModalBase.Overlay = ModalBaseOverlay;\nModalBase.Content = ModalBaseContent;\nModalBase.Header = ModalBaseHeader;\nModalBase.Title = ModalBaseTitle;\nModalBase.Body = ModalBaseBody;\nModalBase.NativeScrollArea = NativeScrollArea;\n\nexport { ModalBase, ModalBaseDefaultProps };\n//# sourceMappingURL=ModalBase.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { DrawerProvider } from '../Drawer.context.js';\nimport useStyles from './DrawerRoot.styles.js';\nimport { ModalBase, ModalBaseDefaultProps } from '../../ModalBase/ModalBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst transitions = {\n top: \"slide-down\",\n bottom: \"slide-up\",\n left: \"slide-right\",\n right: \"slide-left\"\n};\nconst rtlTransitions = {\n top: \"slide-down\",\n bottom: \"slide-up\",\n right: \"slide-right\",\n left: \"slide-left\"\n};\nconst defaultProps = __spreadProps(__spreadValues({}, ModalBaseDefaultProps), {\n position: \"left\"\n});\nfunction DrawerRoot(props) {\n const _a = useComponentDefaultProps(\"DrawerRoot\", defaultProps, props), { classNames, variant, size, scrollAreaComponent, position, transitionProps } = _a, others = __objRest(_a, [\"classNames\", \"variant\", \"size\", \"scrollAreaComponent\", \"position\", \"transitionProps\"]);\n const { classes, cx, theme } = useStyles({ position }, { name: \"Drawer\", variant, size });\n const drawerTransition = (theme.dir === \"rtl\" ? rtlTransitions : transitions)[position];\n return /* @__PURE__ */ React.createElement(DrawerProvider, {\n value: { scrollAreaComponent }\n }, /* @__PURE__ */ React.createElement(ModalBase, __spreadValues({\n __staticSelector: \"Drawer\",\n size,\n variant,\n transitionProps: __spreadValues({ transition: drawerTransition, duration: 200 }, transitionProps),\n classNames: __spreadProps(__spreadValues({}, classNames), {\n content: cx(classes.content, classNames == null ? void 0 : classNames.content),\n inner: cx(classes.inner, classNames == null ? void 0 : classNames.inner)\n })\n }, others)));\n}\n\nexport { DrawerRoot };\n//# sourceMappingURL=DrawerRoot.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useDrawerContext } from '../Drawer.context.js';\nimport { ModalBase } from '../../ModalBase/ModalBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n shadow: \"xl\"\n};\nconst DrawerContent = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ModalContent\", defaultProps, props), { children, scrollAreaComponent } = _a, others = __objRest(_a, [\"children\", \"scrollAreaComponent\"]);\n const ctx = useDrawerContext();\n const Scroll = scrollAreaComponent || ctx.scrollAreaComponent || ModalBase.NativeScrollArea;\n return /* @__PURE__ */ React.createElement(ModalBase.Content, __spreadValues({\n ref,\n radius: 0\n }, others), /* @__PURE__ */ React.createElement(Scroll, {\n style: { height: \"100vh\" }\n }, children));\n});\n\nexport { DrawerContent };\n//# sourceMappingURL=DrawerContent.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { DrawerRoot } from './DrawerRoot/DrawerRoot.js';\nimport { DrawerContent } from './DrawerContent/DrawerContent.js';\nimport { ModalBase, ModalBaseDefaultProps } from '../ModalBase/ModalBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = __spreadProps(__spreadValues({}, ModalBaseDefaultProps), {\n withOverlay: true,\n withCloseButton: true\n});\nfunction Drawer(props) {\n const _a = useComponentDefaultProps(\"Drawer\", defaultProps, props), {\n title,\n withOverlay,\n overlayProps,\n withCloseButton,\n closeButtonProps,\n children\n } = _a, others = __objRest(_a, [\n \"title\",\n \"withOverlay\",\n \"overlayProps\",\n \"withCloseButton\",\n \"closeButtonProps\",\n \"children\"\n ]);\n const hasHeader = !!title || withCloseButton;\n return /* @__PURE__ */ React.createElement(DrawerRoot, __spreadValues({}, others), withOverlay && /* @__PURE__ */ React.createElement(ModalBase.Overlay, __spreadValues({}, overlayProps)), /* @__PURE__ */ React.createElement(DrawerContent, null, hasHeader && /* @__PURE__ */ React.createElement(ModalBase.Header, null, title && /* @__PURE__ */ React.createElement(ModalBase.Title, null, title), withCloseButton && /* @__PURE__ */ React.createElement(ModalBase.CloseButton, __spreadValues({}, closeButtonProps))), /* @__PURE__ */ React.createElement(ModalBase.Body, null, children)));\n}\nDrawer.Root = DrawerRoot;\nDrawer.CloseButton = ModalBase.CloseButton;\nDrawer.Overlay = ModalBase.Overlay;\nDrawer.Content = DrawerContent;\nDrawer.Header = ModalBase.Header;\nDrawer.Title = ModalBase.Title;\nDrawer.Body = ModalBase.Body;\nDrawer.NativeScrollArea = ModalBase.NativeScrollArea;\n\nexport { Drawer };\n//# sourceMappingURL=Drawer.js.map\n","const FLEX_SYSTEM_PROPS = {\n gap: { type: \"spacing\", property: \"gap\" },\n rowGap: { type: \"spacing\", property: \"rowGap\" },\n columnGap: { type: \"spacing\", property: \"columnGap\" },\n align: { type: \"identity\", property: \"alignItems\" },\n justify: { type: \"identity\", property: \"justifyContent\" },\n wrap: { type: \"identity\", property: \"flexWrap\" },\n direction: { type: \"identity\", property: \"flexDirection\" }\n};\n\nexport { FLEX_SYSTEM_PROPS };\n//# sourceMappingURL=flex-props.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { packSx } from '@mantine/utils';\nimport { FLEX_SYSTEM_PROPS } from './flex-props.js';\nimport { Box } from '../Box/Box.js';\nimport { getSystemStyles } from '../Box/style-system-props/get-system-styles/get-system-styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst Flex = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Flex\", defaultProps, props), { gap, rowGap, columnGap, align, justify, wrap, direction, sx } = _a, others = __objRest(_a, [\"gap\", \"rowGap\", \"columnGap\", \"align\", \"justify\", \"wrap\", \"direction\", \"sx\"]);\n return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n sx: [\n { display: \"flex\" },\n (theme) => getSystemStyles({ gap, rowGap, columnGap, align, justify, wrap, direction }, theme, FLEX_SYSTEM_PROPS),\n ...packSx(sx)\n ],\n ref\n }));\n});\nFlex.displayName = \"@mantine/core/Flex\";\n\nexport { Flex };\n//# sourceMappingURL=Flex.js.map\n","import { createSafeContext } from '@mantine/utils';\n\nconst [GridProvider, useGridContext] = createSafeContext(\"Grid component was not found in tree\");\n\nexport { GridProvider, useGridContext };\n//# sourceMappingURL=Grid.context.js.map\n","import { createStyles, MANTINE_SIZES, em, getSize } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst getColumnFlexBasis = (colSpan, columns) => {\n if (colSpan === \"content\") {\n return \"auto\";\n }\n if (colSpan === \"auto\") {\n return \"0rem\";\n }\n return colSpan ? `${100 / (columns / colSpan)}%` : void 0;\n};\nconst getColumnMaxWidth = (colSpan, columns, grow) => {\n if (grow || colSpan === \"auto\" || colSpan === \"content\") {\n return \"unset\";\n }\n return getColumnFlexBasis(colSpan, columns);\n};\nconst getColumnFlexGrow = (colSpan, grow) => {\n if (!colSpan) {\n return void 0;\n }\n return colSpan === \"auto\" || grow ? 1 : 0;\n};\nconst getColumnOffset = (offset, columns) => offset === 0 ? 0 : offset ? `${100 / (columns / offset)}%` : void 0;\nconst getGutterSize = (gutter, theme) => typeof gutter !== \"undefined\" ? `calc(${getSize({ size: gutter, sizes: theme.spacing })} / 2)` : void 0;\nfunction getBreakpointsStyles({\n sizes,\n offsets,\n orders,\n theme,\n columns,\n gutters,\n grow\n}) {\n return MANTINE_SIZES.reduce((acc, size) => {\n acc[`@media (min-width: ${em(theme.breakpoints[size])})`] = {\n order: orders[size],\n flexBasis: getColumnFlexBasis(sizes[size], columns),\n padding: getGutterSize(gutters[size], theme),\n flexShrink: 0,\n width: sizes[size] === \"content\" ? \"auto\" : void 0,\n maxWidth: getColumnMaxWidth(sizes[size], columns, grow),\n marginLeft: getColumnOffset(offsets[size], columns),\n flexGrow: getColumnFlexGrow(sizes[size], grow)\n };\n return acc;\n }, {});\n}\nvar useStyles = createStyles((theme, {\n gutter,\n gutterXs,\n gutterSm,\n gutterMd,\n gutterLg,\n gutterXl,\n grow,\n offset,\n offsetXs,\n offsetSm,\n offsetMd,\n offsetLg,\n offsetXl,\n columns,\n span,\n xs,\n sm,\n md,\n lg,\n xl,\n order,\n orderXs,\n orderSm,\n orderMd,\n orderLg,\n orderXl\n}) => ({\n col: __spreadValues({\n boxSizing: \"border-box\",\n flexGrow: getColumnFlexGrow(span, grow),\n order,\n padding: getGutterSize(gutter, theme),\n marginLeft: getColumnOffset(offset, columns),\n flexBasis: getColumnFlexBasis(span, columns),\n flexShrink: 0,\n width: span === \"content\" ? \"auto\" : void 0,\n maxWidth: getColumnMaxWidth(span, columns, grow)\n }, getBreakpointsStyles({\n sizes: { xs, sm, md, lg, xl },\n offsets: { xs: offsetXs, sm: offsetSm, md: offsetMd, lg: offsetLg, xl: offsetXl },\n orders: { xs: orderXs, sm: orderSm, md: orderMd, lg: orderLg, xl: orderXl },\n gutters: { xs: gutterXs, sm: gutterSm, md: gutterMd, lg: gutterLg, xl: gutterXl },\n theme,\n columns,\n grow\n }))\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Col.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useGridContext } from '../Grid.context.js';\nimport useStyles from './Col.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nfunction isValidSpan(span) {\n if (span === \"auto\" || span === \"content\") {\n return true;\n }\n return typeof span === \"number\" && span > 0 && span % 1 === 0;\n}\nconst Col = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"GridCol\", defaultProps, props), {\n children,\n span,\n offset,\n offsetXs,\n offsetSm,\n offsetMd,\n offsetLg,\n offsetXl,\n xs,\n sm,\n md,\n lg,\n xl,\n order,\n orderXs,\n orderSm,\n orderMd,\n orderLg,\n orderXl,\n className,\n id,\n unstyled,\n variant\n } = _a, others = __objRest(_a, [\n \"children\",\n \"span\",\n \"offset\",\n \"offsetXs\",\n \"offsetSm\",\n \"offsetMd\",\n \"offsetLg\",\n \"offsetXl\",\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"order\",\n \"orderXs\",\n \"orderSm\",\n \"orderMd\",\n \"orderLg\",\n \"orderXl\",\n \"className\",\n \"id\",\n \"unstyled\",\n \"variant\"\n ]);\n const ctx = useGridContext();\n const colSpan = span || ctx.columns;\n const { classes, cx } = useStyles({\n gutter: ctx.gutter,\n gutterXs: ctx.gutterXs,\n gutterSm: ctx.gutterSm,\n gutterMd: ctx.gutterMd,\n gutterLg: ctx.gutterLg,\n gutterXl: ctx.gutterXl,\n offset,\n offsetXs,\n offsetSm,\n offsetMd,\n offsetLg,\n offsetXl,\n xs,\n sm,\n md,\n lg,\n xl,\n order,\n orderXs,\n orderSm,\n orderMd,\n orderLg,\n orderXl,\n grow: ctx.grow,\n columns: ctx.columns,\n span: colSpan\n }, { unstyled, name: \"Grid\", variant });\n if (!isValidSpan(colSpan) || colSpan > ctx.columns) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.col, className),\n ref\n }, others), children);\n});\nCol.displayName = \"@mantine/core/Col\";\n\nexport { Col };\n//# sourceMappingURL=Col.js.map\n","import { createStyles, MANTINE_SIZES, getSize } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction getGutterStyles(gutters, theme) {\n return MANTINE_SIZES.reduce((acc, size) => {\n if (typeof gutters[size] !== \"undefined\") {\n acc[`@media (min-width: ${theme.breakpoints[size]})`] = {\n margin: `calc(-${getSize({ size: gutters[size], sizes: theme.spacing })} / 2)`\n };\n }\n return acc;\n }, {});\n}\nvar useStyles = createStyles((theme, { justify, align, gutter, gutterXs, gutterSm, gutterMd, gutterLg, gutterXl }) => ({\n root: __spreadValues({\n margin: `calc(-${getSize({ size: gutter, sizes: theme.spacing })} / 2)`,\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: justify,\n alignItems: align\n }, getGutterStyles({ xs: gutterXs, sm: gutterSm, md: gutterMd, lg: gutterLg, xl: gutterXl }, theme))\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Grid.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { Col } from './Col/Col.js';\nimport { GridProvider } from './Grid.context.js';\nimport useStyles from './Grid.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n gutter: \"md\",\n justify: \"flex-start\",\n align: \"stretch\",\n columns: 12\n};\nconst Grid = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Grid\", defaultProps, props), {\n gutter,\n gutterXs,\n gutterSm,\n gutterMd,\n gutterLg,\n gutterXl,\n children,\n grow,\n justify,\n align,\n columns,\n className,\n id,\n unstyled,\n variant\n } = _a, others = __objRest(_a, [\n \"gutter\",\n \"gutterXs\",\n \"gutterSm\",\n \"gutterMd\",\n \"gutterLg\",\n \"gutterXl\",\n \"children\",\n \"grow\",\n \"justify\",\n \"align\",\n \"columns\",\n \"className\",\n \"id\",\n \"unstyled\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles({ gutter, justify, align, gutterXs, gutterSm, gutterMd, gutterLg, gutterXl }, { unstyled, name: \"Grid\", variant });\n return /* @__PURE__ */ React.createElement(GridProvider, {\n value: { gutter, gutterXs, gutterSm, gutterMd, gutterLg, gutterXl, grow, columns }\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), children));\n});\nGrid.Col = Col;\nGrid.displayName = \"@mantine/core/Grid\";\n\nexport { Grid };\n//# sourceMappingURL=Grid.js.map\n","import { Children } from 'react';\n\nfunction filterFalsyChildren(children) {\n return Children.toArray(children).filter(Boolean);\n}\n\nexport { filterFalsyChildren };\n//# sourceMappingURL=filter-falsy-children.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nconst GROUP_POSITIONS = {\n left: \"flex-start\",\n center: \"center\",\n right: \"flex-end\",\n apart: \"space-between\"\n};\nvar useStyles = createStyles((theme, { spacing, position, noWrap, grow, align, count }) => ({\n root: {\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: align || \"center\",\n flexWrap: noWrap ? \"nowrap\" : \"wrap\",\n justifyContent: GROUP_POSITIONS[position],\n gap: getSize({ size: spacing, sizes: theme.spacing }),\n \"& > *\": {\n boxSizing: \"border-box\",\n maxWidth: grow ? `calc(${100 / count}% - (${rem(getSize({ size: spacing, sizes: theme.spacing }))} - ${getSize({ size: spacing, sizes: theme.spacing })} / ${count}))` : void 0,\n flexGrow: grow ? 1 : 0\n }\n }\n}));\n\nexport default useStyles;\nexport { GROUP_POSITIONS };\n//# sourceMappingURL=Group.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { filterFalsyChildren } from './filter-falsy-children/filter-falsy-children.js';\nimport useStyles from './Group.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n position: \"left\",\n spacing: \"md\"\n};\nconst Group = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Group\", defaultProps, props), {\n className,\n position,\n align,\n children,\n noWrap,\n grow,\n spacing,\n unstyled,\n variant\n } = _a, others = __objRest(_a, [\n \"className\",\n \"position\",\n \"align\",\n \"children\",\n \"noWrap\",\n \"grow\",\n \"spacing\",\n \"unstyled\",\n \"variant\"\n ]);\n const filteredChildren = filterFalsyChildren(children);\n const { classes, cx } = useStyles({\n align,\n grow,\n noWrap,\n spacing,\n position,\n count: filteredChildren.length\n }, { unstyled, name: \"Group\", variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), filteredChildren);\n});\nGroup.displayName = \"@mantine/core/Group\";\n\nexport { Group };\n//# sourceMappingURL=Group.js.map\n","import { useRef, useEffect } from 'react';\n\nfunction useDelayedHover({ open, close, openDelay, closeDelay }) {\n const openTimeout = useRef(-1);\n const closeTimeout = useRef(-1);\n const clearTimeouts = () => {\n window.clearTimeout(openTimeout.current);\n window.clearTimeout(closeTimeout.current);\n };\n const openDropdown = () => {\n clearTimeouts();\n if (openDelay === 0) {\n open();\n } else {\n openTimeout.current = window.setTimeout(open, openDelay);\n }\n };\n const closeDropdown = () => {\n clearTimeouts();\n if (closeDelay === 0) {\n close();\n } else {\n closeTimeout.current = window.setTimeout(close, closeDelay);\n }\n };\n useEffect(() => clearTimeouts, []);\n return { openDropdown, closeDropdown };\n}\n\nexport { useDelayedHover };\n//# sourceMappingURL=use-delayed-hover.js.map\n","const MENU_ERRORS = {\n context: \"Menu component was not found in the tree\",\n children: \"Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported\"\n};\n\nexport { MENU_ERRORS };\n//# sourceMappingURL=Menu.errors.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { MENU_ERRORS } from './Menu.errors.js';\n\nconst [MenuContextProvider, useMenuContext] = createSafeContext(MENU_ERRORS.context);\n\nexport { MenuContextProvider, useMenuContext };\n//# sourceMappingURL=Menu.context.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar useStyles = createStyles((theme) => ({\n divider: {\n marginTop: rem(4),\n marginBottom: rem(4),\n borderTop: `${rem(1)} solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]}`\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=MenuDivider.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useMenuContext } from '../Menu.context.js';\nimport useStyles from './MenuDivider.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst MenuDivider = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuDivider\", defaultProps, props), { children, className } = _a, others = __objRest(_a, [\"children\", \"className\"]);\n const { classNames, styles, unstyled, variant } = useMenuContext();\n const { classes, cx } = useStyles(null, { name: \"Menu\", classNames, styles, unstyled, variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.divider, className),\n ref\n }, others));\n});\nMenuDivider.displayName = \"@mantine/core/MenuDivider\";\n\nexport { MenuDivider };\n//# sourceMappingURL=MenuDivider.js.map\n","import React, { useRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createEventHandler } from '@mantine/utils';\nimport { useMenuContext } from '../Menu.context.js';\nimport { Popover } from '../../Popover/Popover.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nfunction MenuDropdown(props) {\n const _a = useComponentDefaultProps(\"MenuDropdown\", defaultProps, props), { children, onMouseEnter, onMouseLeave } = _a, others = __objRest(_a, [\"children\", \"onMouseEnter\", \"onMouseLeave\"]);\n const wrapperRef = useRef();\n const ctx = useMenuContext();\n const handleKeyDown = (event) => {\n var _a2;\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n (_a2 = wrapperRef.current.querySelectorAll(\"[data-menu-item]:not(:disabled)\")[0]) == null ? void 0 : _a2.focus();\n }\n };\n const handleMouseEnter = createEventHandler(onMouseEnter, () => ctx.trigger === \"hover\" && ctx.openDropdown());\n const handleMouseLeave = createEventHandler(onMouseLeave, () => ctx.trigger === \"hover\" && ctx.closeDropdown());\n return /* @__PURE__ */ React.createElement(Popover.Dropdown, __spreadValues({\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n role: \"menu\",\n \"aria-orientation\": \"vertical\"\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n tabIndex: -1,\n \"data-menu-dropdown\": true,\n \"data-autofocus\": true,\n onKeyDown: handleKeyDown,\n ref: wrapperRef,\n style: { outline: 0 }\n }, children));\n}\nMenuDropdown.displayName = \"@mantine/core/MenuDropdown\";\n\nexport { MenuDropdown };\n//# sourceMappingURL=MenuDropdown.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme, { color, radius }) => ({\n item: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n WebkitTapHighlightColor: \"transparent\",\n fontSize: theme.fontSizes.sm,\n border: 0,\n backgroundColor: \"transparent\",\n outline: 0,\n width: \"100%\",\n textAlign: \"left\",\n textDecoration: \"none\",\n boxSizing: \"border-box\",\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n cursor: \"pointer\",\n borderRadius: theme.fn.radius(radius),\n color: color ? theme.fn.variant({ variant: \"filled\", primaryFallback: false, color }).background : theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n display: \"flex\",\n alignItems: \"center\",\n \"&:disabled\": {\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[5],\n pointerEvents: \"none\",\n userSelect: \"none\"\n },\n \"&[data-hovered]\": {\n backgroundColor: color ? theme.fn.variant({ variant: \"light\", color }).background : theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.colors.dark[3], 0.35) : theme.colors.gray[1]\n }\n }),\n itemLabel: {\n flex: 1\n },\n itemIcon: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginRight: theme.spacing.xs\n },\n itemRightSection: {}\n}));\n\nexport default useStyles;\n//# sourceMappingURL=MenuItem.styles.js.map\n","import React, { forwardRef, useRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createEventHandler, createScopedKeydownHandler, createPolymorphicComponent } from '@mantine/utils';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useMenuContext } from '../Menu.context.js';\nimport useStyles from './MenuItem.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst _MenuItem = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuItem\", defaultProps, props), { children, className, color, closeMenuOnClick, icon, rightSection } = _a, others = __objRest(_a, [\"children\", \"className\", \"color\", \"closeMenuOnClick\", \"icon\", \"rightSection\"]);\n const ctx = useMenuContext();\n const { classes, cx, theme } = useStyles({ radius: ctx.radius, color }, {\n name: \"Menu\",\n classNames: ctx.classNames,\n styles: ctx.styles,\n unstyled: ctx.unstyled,\n variant: ctx.variant\n });\n const itemRef = useRef();\n const itemIndex = ctx.getItemIndex(itemRef.current);\n const _others = others;\n const handleMouseLeave = createEventHandler(_others.onMouseLeave, () => ctx.setHovered(-1));\n const handleMouseEnter = createEventHandler(_others.onMouseEnter, () => ctx.setHovered(ctx.getItemIndex(itemRef.current)));\n const handleClick = createEventHandler(_others.onClick, () => {\n if (typeof closeMenuOnClick === \"boolean\") {\n closeMenuOnClick && ctx.closeDropdownImmediately();\n } else {\n ctx.closeOnItemClick && ctx.closeDropdownImmediately();\n }\n });\n const handleFocus = createEventHandler(_others.onFocus, () => ctx.setHovered(ctx.getItemIndex(itemRef.current)));\n return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({\n component: \"button\",\n type: \"button\"\n }, others), {\n tabIndex: -1,\n onFocus: handleFocus,\n className: cx(classes.item, className),\n ref: useMergedRef(itemRef, ref),\n role: \"menuitem\",\n \"data-menu-item\": true,\n \"data-hovered\": ctx.hovered === itemIndex ? true : void 0,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onKeyDown: createScopedKeydownHandler({\n siblingSelector: \"[data-menu-item]\",\n parentSelector: \"[data-menu-dropdown]\",\n activateOnFocus: false,\n loop: ctx.loop,\n dir: theme.dir,\n orientation: \"vertical\",\n onKeyDown: _others.onKeydown\n })\n }), icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.itemIcon\n }, icon), children && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.itemLabel\n }, children), rightSection && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.itemRightSection\n }, rightSection));\n});\n_MenuItem.displayName = \"@mantine/core/MenuItem\";\nconst MenuItem = createPolymorphicComponent(_MenuItem);\n\nexport { MenuItem, _MenuItem };\n//# sourceMappingURL=MenuItem.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme) => ({\n label: {\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6],\n fontWeight: 500,\n fontSize: theme.fontSizes.xs,\n padding: `calc(${theme.spacing.xs} / 2) ${theme.spacing.sm}`,\n cursor: \"default\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=MenuLabel.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useMenuContext } from '../Menu.context.js';\nimport useStyles from './MenuLabel.styles.js';\nimport { Text } from '../../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst MenuLabel = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuLabel\", defaultProps, props), { children, className } = _a, others = __objRest(_a, [\"children\", \"className\"]);\n const { classNames, styles, unstyled, variant } = useMenuContext();\n const { classes, cx } = useStyles(null, { name: \"Menu\", classNames, styles, unstyled, variant });\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n className: cx(classes.label, className),\n ref\n }, others), children);\n});\nMenuLabel.displayName = \"@mantine/core/MenuLabel\";\n\nexport { MenuLabel };\n//# sourceMappingURL=MenuLabel.js.map\n","import React, { forwardRef, cloneElement } from 'react';\nimport { isElement, createEventHandler } from '@mantine/utils';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useMenuContext } from '../Menu.context.js';\nimport { MENU_ERRORS } from '../Menu.errors.js';\nimport { Popover } from '../../Popover/Popover.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n refProp: \"ref\"\n};\nconst MenuTarget = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuTarget\", defaultProps, props), { children, refProp } = _a, others = __objRest(_a, [\"children\", \"refProp\"]);\n if (!isElement(children)) {\n throw new Error(MENU_ERRORS.children);\n }\n const ctx = useMenuContext();\n const onClick = createEventHandler(children.props.onClick, () => ctx.trigger === \"click\" && ctx.toggleDropdown());\n const onMouseEnter = createEventHandler(children.props.onMouseEnter, () => ctx.trigger === \"hover\" && ctx.openDropdown());\n const onMouseLeave = createEventHandler(children.props.onMouseLeave, () => ctx.trigger === \"hover\" && ctx.closeDropdown());\n return /* @__PURE__ */ React.createElement(Popover.Target, __spreadValues({\n refProp,\n popupType: \"menu\",\n ref\n }, others), cloneElement(children, {\n onClick,\n onMouseEnter,\n onMouseLeave,\n \"data-expanded\": ctx.opened ? true : void 0\n }));\n});\nMenuTarget.displayName = \"@mantine/core/MenuTarget\";\n\nexport { MenuTarget };\n//# sourceMappingURL=MenuTarget.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar useStyles = createStyles({\n dropdown: { padding: rem(4) }\n});\n\nexport default useStyles;\n//# sourceMappingURL=Menu.styles.js.map\n","import React from 'react';\nimport { useHovered, getContextItemIndex } from '@mantine/utils';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { MenuDivider } from './MenuDivider/MenuDivider.js';\nimport { MenuDropdown } from './MenuDropdown/MenuDropdown.js';\nimport { MenuItem } from './MenuItem/MenuItem.js';\nimport { MenuLabel } from './MenuLabel/MenuLabel.js';\nimport { MenuTarget } from './MenuTarget/MenuTarget.js';\nimport { MenuContextProvider } from './Menu.context.js';\nimport useStyles from './Menu.styles.js';\nimport { useDelayedHover } from '../Floating/use-delayed-hover.js';\nimport { Popover } from '../Popover/Popover.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n closeOnItemClick: true,\n loop: true,\n trigger: \"click\",\n openDelay: 0,\n closeDelay: 100\n};\nfunction Menu(props) {\n const _a = useComponentDefaultProps(\"Menu\", defaultProps, props), {\n children,\n onOpen,\n onClose,\n opened,\n defaultOpened,\n onChange,\n closeOnItemClick,\n loop,\n closeOnEscape,\n trigger,\n openDelay,\n closeDelay,\n classNames,\n styles,\n unstyled,\n radius,\n variant\n } = _a, others = __objRest(_a, [\n \"children\",\n \"onOpen\",\n \"onClose\",\n \"opened\",\n \"defaultOpened\",\n \"onChange\",\n \"closeOnItemClick\",\n \"loop\",\n \"closeOnEscape\",\n \"trigger\",\n \"openDelay\",\n \"closeDelay\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"radius\",\n \"variant\"\n ]);\n const { classes, cx } = useStyles();\n const [hovered, { setHovered, resetHovered }] = useHovered();\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange\n });\n const close = () => {\n setOpened(false);\n _opened && (onClose == null ? void 0 : onClose());\n };\n const open = () => {\n setOpened(true);\n !_opened && (onOpen == null ? void 0 : onOpen());\n };\n const toggleDropdown = () => _opened ? close() : open();\n const { openDropdown, closeDropdown } = useDelayedHover({ open, close, closeDelay, openDelay });\n const getItemIndex = (node) => getContextItemIndex(\"[data-menu-item]\", \"[data-menu-dropdown]\", node);\n useDidUpdate(() => {\n resetHovered();\n }, [_opened]);\n return /* @__PURE__ */ React.createElement(MenuContextProvider, {\n value: {\n opened: _opened,\n toggleDropdown,\n getItemIndex,\n hovered,\n setHovered,\n closeOnItemClick,\n closeDropdown: trigger === \"click\" ? close : closeDropdown,\n openDropdown: trigger === \"click\" ? open : openDropdown,\n closeDropdownImmediately: close,\n loop,\n trigger,\n radius,\n classNames,\n styles,\n unstyled,\n variant\n }\n }, /* @__PURE__ */ React.createElement(Popover, __spreadProps(__spreadValues({}, others), {\n radius,\n opened: _opened,\n onChange: toggleDropdown,\n defaultOpened,\n trapFocus: trigger === \"click\",\n closeOnEscape: closeOnEscape && trigger === \"click\",\n __staticSelector: \"Menu\",\n classNames: __spreadProps(__spreadValues({}, classNames), { dropdown: cx(classes.dropdown, classNames == null ? void 0 : classNames.dropdown) }),\n styles,\n unstyled,\n variant\n }), children));\n}\nMenu.displayName = \"@mantine/core/Menu\";\nMenu.Item = MenuItem;\nMenu.Label = MenuLabel;\nMenu.Dropdown = MenuDropdown;\nMenu.Target = MenuTarget;\nMenu.Divider = MenuDivider;\n\nexport { Menu };\n//# sourceMappingURL=Menu.js.map\n","import { createSafeContext } from '@mantine/utils';\n\nconst [ModalProvider, useModalContext] = createSafeContext(\"Modal component was not found in tree\");\n\nexport { ModalProvider, useModalContext };\n//# sourceMappingURL=Modal.context.js.map\n","import { createStyles, getSize, rem } from '@mantine/styles';\n\nconst sizes = {\n xs: rem(320),\n sm: rem(380),\n md: rem(440),\n lg: rem(620),\n xl: rem(780)\n};\nvar useStyles = createStyles((theme, { yOffset, xOffset, centered, fullScreen }, { size }) => ({\n content: {\n flex: fullScreen ? \"0 0 100%\" : `0 0 ${getSize({ size, sizes })}`,\n maxWidth: \"100%\",\n maxHeight: fullScreen ? void 0 : `calc(100dvh - (${rem(yOffset)} * 2))`,\n height: fullScreen ? \"100vh\" : void 0,\n borderRadius: fullScreen ? 0 : void 0,\n overflowY: \"auto\"\n },\n inner: {\n paddingTop: fullScreen ? 0 : yOffset,\n paddingBottom: fullScreen ? 0 : yOffset,\n paddingLeft: fullScreen ? 0 : xOffset,\n paddingRight: fullScreen ? 0 : xOffset,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: centered ? \"center\" : \"flex-start\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ModalRoot.styles.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { ModalProvider } from '../Modal.context.js';\nimport useStyles from './ModalRoot.styles.js';\nimport { ModalBase, ModalBaseDefaultProps } from '../../ModalBase/ModalBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = __spreadProps(__spreadValues({}, ModalBaseDefaultProps), {\n yOffset: \"5dvh\",\n xOffset: \"5vw\"\n});\nfunction ModalRoot(props) {\n const _a = useComponentDefaultProps(\"ModalRoot\", defaultProps, props), {\n classNames,\n variant,\n size,\n yOffset,\n xOffset,\n scrollAreaComponent,\n radius,\n centered,\n fullScreen\n } = _a, others = __objRest(_a, [\n \"classNames\",\n \"variant\",\n \"size\",\n \"yOffset\",\n \"xOffset\",\n \"scrollAreaComponent\",\n \"radius\",\n \"centered\",\n \"fullScreen\"\n ]);\n const { classes, cx } = useStyles({ yOffset, xOffset, centered, fullScreen }, { name: \"Modal\", variant, size });\n return /* @__PURE__ */ React.createElement(ModalProvider, {\n value: { yOffset, scrollAreaComponent, radius }\n }, /* @__PURE__ */ React.createElement(ModalBase, __spreadValues({\n __staticSelector: \"Modal\",\n size,\n variant,\n classNames: __spreadProps(__spreadValues({}, classNames), {\n content: cx(classes.content, classNames == null ? void 0 : classNames.content),\n inner: cx(classes.inner, classNames == null ? void 0 : classNames.inner)\n })\n }, others)));\n}\n\nexport { ModalRoot };\n//# sourceMappingURL=ModalRoot.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps, rem } from '@mantine/styles';\nimport { useModalContext } from '../Modal.context.js';\nimport { ModalBase } from '../../ModalBase/ModalBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n shadow: \"xl\"\n};\nconst ModalContent = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ModalContent\", defaultProps, props), { children, scrollAreaComponent } = _a, others = __objRest(_a, [\"children\", \"scrollAreaComponent\"]);\n const ctx = useModalContext();\n const Scroll = scrollAreaComponent || ctx.scrollAreaComponent || ModalBase.NativeScrollArea;\n return /* @__PURE__ */ React.createElement(ModalBase.Content, __spreadValues({\n ref,\n radius: ctx.radius\n }, others), /* @__PURE__ */ React.createElement(Scroll, {\n style: { maxHeight: `calc(100dvh - (${rem(ctx.yOffset)} * 2))` }\n }, children));\n});\n\nexport { ModalContent };\n//# sourceMappingURL=ModalContent.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { ModalRoot } from './ModalRoot/ModalRoot.js';\nimport { ModalContent } from './ModalContent/ModalContent.js';\nimport { ModalBase, ModalBaseDefaultProps } from '../ModalBase/ModalBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = __spreadProps(__spreadValues({}, ModalBaseDefaultProps), {\n transitionProps: { duration: 200, transition: \"pop\" },\n withOverlay: true,\n withCloseButton: true\n});\nfunction Modal(props) {\n const _a = useComponentDefaultProps(\"Modal\", defaultProps, props), {\n title,\n withOverlay,\n overlayProps,\n withCloseButton,\n closeButtonProps,\n children\n } = _a, others = __objRest(_a, [\n \"title\",\n \"withOverlay\",\n \"overlayProps\",\n \"withCloseButton\",\n \"closeButtonProps\",\n \"children\"\n ]);\n const hasHeader = !!title || withCloseButton;\n return /* @__PURE__ */ React.createElement(ModalRoot, __spreadValues({}, others), withOverlay && /* @__PURE__ */ React.createElement(ModalBase.Overlay, __spreadValues({}, overlayProps)), /* @__PURE__ */ React.createElement(ModalContent, null, hasHeader && /* @__PURE__ */ React.createElement(ModalBase.Header, null, title && /* @__PURE__ */ React.createElement(ModalBase.Title, null, title), withCloseButton && /* @__PURE__ */ React.createElement(ModalBase.CloseButton, __spreadValues({}, closeButtonProps))), /* @__PURE__ */ React.createElement(ModalBase.Body, null, children)));\n}\nModal.Root = ModalRoot;\nModal.CloseButton = ModalBase.CloseButton;\nModal.Overlay = ModalBase.Overlay;\nModal.Content = ModalContent;\nModal.Header = ModalBase.Header;\nModal.Title = ModalBase.Title;\nModal.Body = ModalBase.Body;\nModal.NativeScrollArea = ModalBase.NativeScrollArea;\n\nexport { Modal };\n//# sourceMappingURL=Modal.js.map\n","import React, { forwardRef } from 'react';\nimport { useInputProps } from '../Input/use-input-props.js';\nimport { Input } from '../Input/Input.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n type: \"text\",\n size: \"sm\",\n __staticSelector: \"TextInput\"\n};\nconst TextInput = forwardRef((props, ref) => {\n const _a = useInputProps(\"TextInput\", defaultProps, props), { inputProps, wrapperProps } = _a, others = __objRest(_a, [\"inputProps\", \"wrapperProps\"]);\n return /* @__PURE__ */ React.createElement(Input.Wrapper, __spreadValues({}, wrapperProps), /* @__PURE__ */ React.createElement(Input, __spreadProps(__spreadValues(__spreadValues({}, inputProps), others), {\n ref\n })));\n});\nTextInput.displayName = \"@mantine/core/TextInput\";\n\nexport { TextInput };\n//# sourceMappingURL=TextInput.js.map\n","import { useContext, createContext } from 'react';\n\nconst TooltipGroupContext = createContext(false);\nconst TooltipGroupProvider = TooltipGroupContext.Provider;\nconst useTooltipGroupContext = () => useContext(TooltipGroupContext);\n\nexport { TooltipGroupProvider, useTooltipGroupContext };\n//# sourceMappingURL=TooltipGroup.context.js.map\n","import React from 'react';\nimport { FloatingDelayGroup } from '@floating-ui/react';\nimport { TooltipGroupProvider } from './TooltipGroup.context.js';\n\nfunction TooltipGroup({ children, openDelay = 0, closeDelay = 0 }) {\n return /* @__PURE__ */ React.createElement(TooltipGroupProvider, {\n value: true\n }, /* @__PURE__ */ React.createElement(FloatingDelayGroup, {\n delay: { open: openDelay, close: closeDelay }\n }, children));\n}\nTooltipGroup.displayName = \"@mantine/core/TooltipGroup\";\n\nexport { TooltipGroup };\n//# sourceMappingURL=TooltipGroup.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getColors(theme, color) {\n if (!color) {\n return {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.gray[2] : theme.colors.gray[9],\n color: theme.colorScheme === \"dark\" ? theme.black : theme.white\n };\n }\n const colors = theme.fn.variant({ variant: \"filled\", color, primaryFallback: false });\n return {\n backgroundColor: colors.background,\n color: colors.color\n };\n}\nvar useStyles = createStyles((theme, { color, radius, width, multiline }) => ({\n tooltip: __spreadProps(__spreadValues(__spreadValues({}, theme.fn.fontStyles()), getColors(theme, color)), {\n lineHeight: theme.lineHeight,\n fontSize: theme.fontSizes.sm,\n borderRadius: theme.fn.radius(radius),\n padding: `calc(${theme.spacing.xs} / 2) ${theme.spacing.xs}`,\n position: \"absolute\",\n whiteSpace: multiline ? \"unset\" : \"nowrap\",\n pointerEvents: \"none\",\n width\n }),\n arrow: {\n backgroundColor: \"inherit\",\n border: 0,\n zIndex: 1\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Tooltip.styles.js.map\n","const TOOLTIP_ERRORS = {\n children: \"Tooltip component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported\"\n};\n\nexport { TOOLTIP_ERRORS };\n//# sourceMappingURL=Tooltip.errors.js.map\n","import { useState, useRef, useCallback, useEffect } from 'react';\nimport { useFloating, shift, getOverflowAncestors } from '@floating-ui/react';\n\nfunction useFloatingTooltip({\n offset,\n position\n}) {\n const [opened, setOpened] = useState(false);\n const boundaryRef = useRef();\n const { x, y, reference, floating, refs, update, placement } = useFloating({\n placement: position,\n middleware: [\n shift({\n crossAxis: true,\n padding: 5,\n rootBoundary: \"document\"\n })\n ]\n });\n const horizontalOffset = placement.includes(\"right\") ? offset : position.includes(\"left\") ? offset * -1 : 0;\n const verticalOffset = placement.includes(\"bottom\") ? offset : position.includes(\"top\") ? offset * -1 : 0;\n const handleMouseMove = useCallback(({ clientX, clientY }) => {\n reference({\n getBoundingClientRect() {\n return {\n width: 0,\n height: 0,\n x: clientX,\n y: clientY,\n left: clientX + horizontalOffset,\n top: clientY + verticalOffset,\n right: clientX,\n bottom: clientY\n };\n }\n });\n }, [reference]);\n useEffect(() => {\n if (refs.floating.current) {\n const boundary = boundaryRef.current;\n boundary.addEventListener(\"mousemove\", handleMouseMove);\n const parents = getOverflowAncestors(refs.floating.current);\n parents.forEach((parent) => {\n parent.addEventListener(\"scroll\", update);\n });\n return () => {\n boundary.removeEventListener(\"mousemove\", handleMouseMove);\n parents.forEach((parent) => {\n parent.removeEventListener(\"scroll\", update);\n });\n };\n }\n return void 0;\n }, [reference, refs.floating.current, update, handleMouseMove, opened]);\n return { handleMouseMove, x, y, opened, setOpened, boundaryRef, floating };\n}\n\nexport { useFloatingTooltip };\n//# sourceMappingURL=use-floating-tooltip.js.map\n","import React, { cloneElement } from 'react';\nimport { isElement } from '@mantine/utils';\nimport { useMergedRef } from '@mantine/hooks';\nimport { getDefaultZIndex, useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from '../Tooltip.styles.js';\nimport { TOOLTIP_ERRORS } from '../Tooltip.errors.js';\nimport { useFloatingTooltip } from './use-floating-tooltip.js';\nimport { OptionalPortal } from '../../Portal/OptionalPortal.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n refProp: \"ref\",\n withinPortal: true,\n offset: 10,\n position: \"right\",\n zIndex: getDefaultZIndex(\"popover\")\n};\nfunction TooltipFloating(props) {\n var _b;\n const _a = useComponentDefaultProps(\"TooltipFloating\", defaultProps, props), {\n children,\n refProp,\n withinPortal,\n portalProps,\n style,\n className,\n classNames,\n styles,\n unstyled,\n radius,\n color,\n label,\n offset,\n position,\n multiline,\n width,\n zIndex,\n disabled,\n variant\n } = _a, others = __objRest(_a, [\n \"children\",\n \"refProp\",\n \"withinPortal\",\n \"portalProps\",\n \"style\",\n \"className\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"radius\",\n \"color\",\n \"label\",\n \"offset\",\n \"position\",\n \"multiline\",\n \"width\",\n \"zIndex\",\n \"disabled\",\n \"variant\"\n ]);\n const { handleMouseMove, x, y, opened, boundaryRef, floating, setOpened } = useFloatingTooltip({\n offset,\n position\n });\n const { classes, cx } = useStyles({ radius, color, multiline, width }, { name: \"TooltipFloating\", classNames, styles, unstyled, variant });\n if (!isElement(children)) {\n throw new Error(TOOLTIP_ERRORS.children);\n }\n const targetRef = useMergedRef(boundaryRef, children.ref);\n const onMouseEnter = (event) => {\n var _a2, _b2;\n (_b2 = (_a2 = children.props).onMouseEnter) == null ? void 0 : _b2.call(_a2, event);\n handleMouseMove(event);\n setOpened(true);\n };\n const onMouseLeave = (event) => {\n var _a2, _b2;\n (_b2 = (_a2 = children.props).onMouseLeave) == null ? void 0 : _b2.call(_a2, event);\n setOpened(false);\n };\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(OptionalPortal, __spreadProps(__spreadValues({}, portalProps), {\n withinPortal\n }), /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n ref: floating,\n className: cx(classes.tooltip, className),\n style: __spreadProps(__spreadValues({}, style), {\n zIndex,\n display: !disabled && opened ? \"block\" : \"none\",\n top: y != null ? y : \"\",\n left: (_b = Math.round(x)) != null ? _b : \"\"\n })\n }), label)), cloneElement(children, __spreadProps(__spreadValues({}, children.props), {\n [refProp]: targetRef,\n onMouseEnter,\n onMouseLeave\n })));\n}\nTooltipFloating.displayName = \"@mantine/core/TooltipFloating\";\n\nexport { TooltipFloating };\n//# sourceMappingURL=TooltipFloating.js.map\n","import { useState, useCallback } from 'react';\nimport { useDelayGroupContext, useFloating, offset, shift, flip, arrow, inline, useInteractions, useHover, useFocus, useRole, useDismiss, useDelayGroup } from '@floating-ui/react';\nimport { useId, useDidUpdate } from '@mantine/hooks';\nimport { useTooltipGroupContext } from './TooltipGroup/TooltipGroup.context.js';\nimport { useFloatingAutoUpdate } from '../Floating/use-floating-auto-update.js';\n\nfunction useTooltip(settings) {\n const [uncontrolledOpened, setUncontrolledOpened] = useState(false);\n const controlled = typeof settings.opened === \"boolean\";\n const opened = controlled ? settings.opened : uncontrolledOpened;\n const withinGroup = useTooltipGroupContext();\n const uid = useId();\n const { delay: groupDelay, currentId, setCurrentId } = useDelayGroupContext();\n const onChange = useCallback((_opened) => {\n setUncontrolledOpened(_opened);\n if (_opened) {\n setCurrentId(uid);\n }\n }, [setCurrentId, uid]);\n const {\n x,\n y,\n reference,\n floating,\n context,\n refs,\n update,\n placement,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {} }\n } = useFloating({\n placement: settings.position,\n open: opened,\n onOpenChange: onChange,\n middleware: [\n offset(settings.offset),\n shift({ padding: 8 }),\n flip(),\n arrow({ element: settings.arrowRef, padding: settings.arrowOffset }),\n ...settings.inline ? [inline()] : []\n ]\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(context, {\n enabled: settings.events.hover,\n delay: withinGroup ? groupDelay : { open: settings.openDelay, close: settings.closeDelay },\n mouseOnly: !settings.events.touch\n }),\n useFocus(context, { enabled: settings.events.focus, keyboardOnly: true }),\n useRole(context, { role: \"tooltip\" }),\n useDismiss(context, { enabled: typeof settings.opened === void 0 }),\n useDelayGroup(context, { id: uid })\n ]);\n useFloatingAutoUpdate({\n opened,\n position: settings.position,\n positionDependencies: settings.positionDependencies,\n floating: { refs, update }\n });\n useDidUpdate(() => {\n var _a;\n (_a = settings.onPositionChange) == null ? void 0 : _a.call(settings, placement);\n }, [placement]);\n const isGroupPhase = opened && currentId && currentId !== uid;\n return {\n x,\n y,\n arrowX,\n arrowY,\n reference,\n floating,\n getFloatingProps,\n getReferenceProps,\n isGroupPhase,\n opened,\n placement\n };\n}\n\nexport { useTooltip };\n//# sourceMappingURL=use-tooltip.js.map\n","import React, { forwardRef, useRef, cloneElement } from 'react';\nimport { isElement } from '@mantine/utils';\nimport { useMergedRef } from '@mantine/hooks';\nimport { getDefaultZIndex, useComponentDefaultProps } from '@mantine/styles';\nimport { TooltipGroup } from './TooltipGroup/TooltipGroup.js';\nimport { TooltipFloating } from './TooltipFloating/TooltipFloating.js';\nimport { useTooltip } from './use-tooltip.js';\nimport { TOOLTIP_ERRORS } from './Tooltip.errors.js';\nimport useStyles from './Tooltip.styles.js';\nimport { getFloatingPosition } from '../Floating/get-floating-position/get-floating-position.js';\nimport { OptionalPortal } from '../Portal/OptionalPortal.js';\nimport { Transition } from '../Transition/Transition.js';\nimport { Box } from '../Box/Box.js';\nimport { FloatingArrow } from '../Floating/FloatingArrow/FloatingArrow.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n position: \"top\",\n refProp: \"ref\",\n withinPortal: false,\n inline: false,\n arrowSize: 4,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: \"side\",\n offset: 5,\n transitionProps: { duration: 100, transition: \"fade\" },\n width: \"auto\",\n events: { hover: true, focus: false, touch: false },\n zIndex: getDefaultZIndex(\"popover\"),\n positionDependencies: []\n};\nconst _Tooltip = forwardRef((props, ref) => {\n var _b;\n const arrowRef = useRef(null);\n const _a = useComponentDefaultProps(\"Tooltip\", defaultProps, props), {\n children,\n position,\n refProp,\n label,\n openDelay,\n closeDelay,\n onPositionChange,\n opened,\n withinPortal,\n portalProps,\n radius,\n color,\n classNames,\n styles,\n unstyled,\n style,\n className,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n offset,\n transitionProps,\n multiline,\n width,\n events,\n zIndex,\n disabled,\n positionDependencies,\n onClick,\n onMouseEnter,\n onMouseLeave,\n inline,\n variant,\n keepMounted\n } = _a, others = __objRest(_a, [\n \"children\",\n \"position\",\n \"refProp\",\n \"label\",\n \"openDelay\",\n \"closeDelay\",\n \"onPositionChange\",\n \"opened\",\n \"withinPortal\",\n \"portalProps\",\n \"radius\",\n \"color\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"style\",\n \"className\",\n \"withArrow\",\n \"arrowSize\",\n \"arrowOffset\",\n \"arrowRadius\",\n \"arrowPosition\",\n \"offset\",\n \"transitionProps\",\n \"multiline\",\n \"width\",\n \"events\",\n \"zIndex\",\n \"disabled\",\n \"positionDependencies\",\n \"onClick\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"inline\",\n \"variant\",\n \"keepMounted\"\n ]);\n const { classes, cx, theme } = useStyles({ radius, color, width, multiline }, { name: \"Tooltip\", classNames, styles, unstyled, variant });\n const tooltip = useTooltip({\n position: getFloatingPosition(theme.dir, position),\n closeDelay,\n openDelay,\n onPositionChange,\n opened,\n events,\n arrowRef,\n arrowOffset,\n offset: offset + (withArrow ? arrowSize / 2 : 0),\n positionDependencies: [...positionDependencies, children],\n inline\n });\n if (!isElement(children)) {\n throw new Error(TOOLTIP_ERRORS.children);\n }\n const targetRef = useMergedRef(tooltip.reference, children.ref, ref);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(OptionalPortal, __spreadProps(__spreadValues({}, portalProps), {\n withinPortal\n }), /* @__PURE__ */ React.createElement(Transition, __spreadProps(__spreadValues({\n keepMounted,\n mounted: !disabled && tooltip.opened\n }, transitionProps), {\n transition: transitionProps.transition || \"fade\",\n duration: tooltip.isGroupPhase ? 10 : (_b = transitionProps.duration) != null ? _b : 100\n }), (transitionStyles) => {\n var _a2, _b2;\n return /* @__PURE__ */ React.createElement(Box, __spreadValues(__spreadValues({}, others), tooltip.getFloatingProps({\n ref: tooltip.floating,\n className: classes.tooltip,\n style: __spreadProps(__spreadValues(__spreadValues({}, style), transitionStyles), {\n zIndex,\n top: (_a2 = tooltip.y) != null ? _a2 : 0,\n left: (_b2 = tooltip.x) != null ? _b2 : 0\n })\n })), label, /* @__PURE__ */ React.createElement(FloatingArrow, {\n ref: arrowRef,\n arrowX: tooltip.arrowX,\n arrowY: tooltip.arrowY,\n visible: withArrow,\n position: tooltip.placement,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n className: classes.arrow\n }));\n })), cloneElement(children, tooltip.getReferenceProps(__spreadValues({\n onClick,\n onMouseEnter,\n onMouseLeave,\n onMouseMove: props.onMouseMove,\n onPointerDown: props.onPointerDown,\n onPointerEnter: props.onPointerEnter,\n [refProp]: targetRef,\n className: cx(className, children.props.className)\n }, children.props))));\n});\n_Tooltip.Group = TooltipGroup;\n_Tooltip.Floating = TooltipFloating;\n_Tooltip.displayName = \"@mantine/core/Tooltip\";\nconst Tooltip = _Tooltip;\n\nexport { Tooltip };\n//# sourceMappingURL=Tooltip.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n w: 0,\n h: 0\n};\nconst Space = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Space\", defaultProps, props), { w, h } = _a, others = __objRest(_a, [\"w\", \"h\"]);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n w,\n miw: w,\n h,\n mih: h\n }, others));\n});\nSpace.displayName = \"@mantine/core/Space\";\n\nexport { Space };\n//# sourceMappingURL=Space.js.map\n","import { createStyles, getSize } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { spacing, align, justify }) => ({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: align,\n justifyContent: justify,\n gap: getSize({ size: spacing, sizes: theme.spacing })\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Stack.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './Stack.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n spacing: \"md\",\n align: \"stretch\",\n justify: \"flex-start\"\n};\nconst Stack = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Stack\", defaultProps, props), { spacing, className, align, justify, unstyled, variant } = _a, others = __objRest(_a, [\"spacing\", \"className\", \"align\", \"justify\", \"unstyled\", \"variant\"]);\n const { classes, cx } = useStyles({ spacing, align, justify }, { name: \"Stack\", unstyled, variant });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others));\n});\nStack.displayName = \"@mantine/core/Stack\";\n\nexport { Stack };\n//# sourceMappingURL=Stack.js.map\n","import { createStyles, rem } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getFontSize(size, element, theme) {\n if (typeof size !== \"undefined\") {\n return size in theme.headings.sizes ? theme.headings.sizes[size].fontSize : rem(size);\n }\n return theme.headings.sizes[element].fontSize;\n}\nfunction getLineHeight(size, element, theme) {\n if (typeof size !== \"undefined\" && size in theme.headings.sizes) {\n return theme.headings.sizes[size].lineHeight;\n }\n return theme.headings.sizes[element].lineHeight;\n}\nvar useStyles = createStyles((theme, { element, weight, inline }, { size }) => ({\n root: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n fontFamily: theme.headings.fontFamily,\n fontWeight: weight || theme.headings.sizes[element].fontWeight || theme.headings.fontWeight,\n fontSize: getFontSize(size, element, theme),\n lineHeight: inline ? 1 : getLineHeight(size, element, theme),\n margin: 0\n })\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Title.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './Title.styles.js';\nimport { Text } from '../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n order: 1\n};\nconst Title = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Title\", defaultProps, props), { className, order, children, unstyled, size, weight, inline, variant } = _a, others = __objRest(_a, [\"className\", \"order\", \"children\", \"unstyled\", \"size\", \"weight\", \"inline\", \"variant\"]);\n const { classes, cx } = useStyles({ element: `h${order}`, weight, inline }, { name: \"Title\", unstyled, variant, size });\n if (![1, 2, 3, 4, 5, 6].includes(order)) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n variant,\n component: `h${order}`,\n ref,\n className: cx(classes.root, className)\n }, others), children);\n});\nTitle.displayName = \"@mantine/core/Title\";\n\nexport { Title };\n//# sourceMappingURL=Title.js.map\n","import { createContext } from 'react';\n\nconst ModalsContext = createContext(null);\nModalsContext.displayName = \"@mantine/modals/ModalsContext\";\n\nexport { ModalsContext };\n//# sourceMappingURL=context.js.map\n","import { useContext } from 'react';\nimport { ModalsContext } from '../context.js';\n\nfunction useModals() {\n const ctx = useContext(ModalsContext);\n if (!ctx) {\n throw new Error(\"[@mantine/modals] useModals hook was called outside of context, wrap your app with ModalsProvider component\");\n }\n return ctx;\n}\n\nexport { useModals };\n//# sourceMappingURL=use-modals.js.map\n","import React from 'react';\nimport { Box, Group, Button } from '@mantine/core';\nimport { useModals } from './use-modals/use-modals.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction ConfirmModal({\n id,\n cancelProps,\n confirmProps,\n labels = { cancel: \"\", confirm: \"\" },\n closeOnConfirm = true,\n closeOnCancel = true,\n groupProps,\n onCancel,\n onConfirm,\n children\n}) {\n const { cancel: cancelLabel, confirm: confirmLabel } = labels;\n const ctx = useModals();\n const handleCancel = (event) => {\n typeof (cancelProps == null ? void 0 : cancelProps.onClick) === \"function\" && (cancelProps == null ? void 0 : cancelProps.onClick(event));\n typeof onCancel === \"function\" && onCancel();\n closeOnCancel && ctx.closeModal(id);\n };\n const handleConfirm = (event) => {\n typeof (confirmProps == null ? void 0 : confirmProps.onClick) === \"function\" && (confirmProps == null ? void 0 : confirmProps.onClick(event));\n typeof onConfirm === \"function\" && onConfirm();\n closeOnConfirm && ctx.closeModal(id);\n };\n return /* @__PURE__ */ React.createElement(React.Fragment, null, children && /* @__PURE__ */ React.createElement(Box, {\n mb: \"md\"\n }, children), /* @__PURE__ */ React.createElement(Group, __spreadValues({\n position: \"right\"\n }, groupProps), /* @__PURE__ */ React.createElement(Button, __spreadProps(__spreadValues({\n variant: \"default\"\n }, cancelProps), {\n onClick: handleCancel\n }), (cancelProps == null ? void 0 : cancelProps.children) || cancelLabel), /* @__PURE__ */ React.createElement(Button, __spreadProps(__spreadValues({}, confirmProps), {\n onClick: handleConfirm\n }), (confirmProps == null ? void 0 : confirmProps.children) || confirmLabel)));\n}\n\nexport { ConfirmModal };\n//# sourceMappingURL=ConfirmModal.js.map\n","function handleCloseModal(modal, canceled) {\n var _a, _b, _c, _d;\n if (canceled && modal.type === \"confirm\") {\n (_b = (_a = modal.props).onCancel) == null ? void 0 : _b.call(_a);\n }\n (_d = (_c = modal.props).onClose) == null ? void 0 : _d.call(_c);\n}\nfunction modalsReducer(state, action) {\n switch (action.type) {\n case \"OPEN\": {\n return {\n current: action.modal,\n modals: [...state.modals, action.modal]\n };\n }\n case \"CLOSE\": {\n const modal = state.modals.find((m) => m.id === action.modalId);\n if (!modal) {\n return state;\n }\n handleCloseModal(modal, action.canceled);\n const remainingModals = state.modals.filter((m) => m.id !== action.modalId);\n return {\n current: remainingModals[remainingModals.length - 1] || state.current,\n modals: remainingModals\n };\n }\n case \"CLOSE_ALL\": {\n if (!state.modals.length) {\n return state;\n }\n state.modals.concat().reverse().forEach((modal) => {\n handleCloseModal(modal, action.canceled);\n });\n return {\n current: state.current,\n modals: []\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport { modalsReducer };\n//# sourceMappingURL=reducer.js.map\n","import { createUseExternalEvents } from '@mantine/utils';\n\nconst [useModalsEvents, createEvent] = createUseExternalEvents(\"mantine-modals\");\nconst openModal = createEvent(\"openModal\");\nconst closeModal = createEvent(\"closeModal\");\nconst closeAllModals = createEvent(\"closeAllModals\");\nconst openConfirmModal = createEvent(\"openConfirmModal\");\nconst openContextModal = (payload) => createEvent(\"openContextModal\")(payload);\nconst modals = {\n open: openModal,\n close: closeModal,\n closeAll: closeAllModals,\n openConfirmModal,\n openContextModal\n};\n\nexport { closeAllModals, closeModal, createEvent, modals, openConfirmModal, openContextModal, openModal, useModalsEvents };\n//# sourceMappingURL=events.js.map\n","import React, { useReducer, useRef, useCallback } from 'react';\nimport { Modal, getDefaultZIndex } from '@mantine/core';\nimport { randomId } from '@mantine/hooks';\nimport { ModalsContext } from './context.js';\nimport { ConfirmModal } from './ConfirmModal.js';\nimport { modalsReducer } from './reducer.js';\nimport { useModalsEvents } from './events.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction separateConfirmModalProps(props) {\n if (!props) {\n return { confirmProps: {}, modalProps: {} };\n }\n const _a = props, {\n id,\n children,\n onCancel,\n onConfirm,\n closeOnConfirm,\n closeOnCancel,\n cancelProps,\n confirmProps,\n groupProps,\n labels\n } = _a, others = __objRest(_a, [\n \"id\",\n \"children\",\n \"onCancel\",\n \"onConfirm\",\n \"closeOnConfirm\",\n \"closeOnCancel\",\n \"cancelProps\",\n \"confirmProps\",\n \"groupProps\",\n \"labels\"\n ]);\n return {\n confirmProps: {\n id,\n children,\n onCancel,\n onConfirm,\n closeOnConfirm,\n closeOnCancel,\n cancelProps,\n confirmProps,\n groupProps,\n labels\n },\n modalProps: __spreadValues({\n id\n }, others)\n };\n}\nfunction ModalsProvider({ children, modalProps, labels, modals }) {\n const [state, dispatch] = useReducer(modalsReducer, { modals: [], current: null });\n const stateRef = useRef(state);\n stateRef.current = state;\n const closeAll = useCallback((canceled) => {\n dispatch({ type: \"CLOSE_ALL\", canceled });\n }, [stateRef, dispatch]);\n const openModal = useCallback((_a) => {\n var _b = _a, { modalId } = _b, props = __objRest(_b, [\"modalId\"]);\n const id = modalId || randomId();\n dispatch({\n type: \"OPEN\",\n modal: {\n id,\n type: \"content\",\n props\n }\n });\n return id;\n }, [dispatch]);\n const openConfirmModal = useCallback((_c) => {\n var _d = _c, { modalId } = _d, props = __objRest(_d, [\"modalId\"]);\n const id = modalId || randomId();\n dispatch({\n type: \"OPEN\",\n modal: {\n id,\n type: \"confirm\",\n props\n }\n });\n return id;\n }, [dispatch]);\n const openContextModal = useCallback((modal, _e) => {\n var _f = _e, { modalId } = _f, props = __objRest(_f, [\"modalId\"]);\n const id = modalId || randomId();\n dispatch({\n type: \"OPEN\",\n modal: {\n id,\n type: \"context\",\n props,\n ctx: modal\n }\n });\n return id;\n }, [dispatch]);\n const closeModal = useCallback((id, canceled) => {\n dispatch({ type: \"CLOSE\", modalId: id, canceled });\n }, [stateRef, dispatch]);\n useModalsEvents({\n openModal,\n openConfirmModal,\n openContextModal: (_g) => {\n var _h = _g, { modal } = _h, payload = __objRest(_h, [\"modal\"]);\n return openContextModal(modal, payload);\n },\n closeModal,\n closeContextModal: closeModal,\n closeAllModals: closeAll\n });\n const ctx = {\n modals: state.modals,\n openModal,\n openConfirmModal,\n openContextModal,\n closeModal,\n closeContextModal: closeModal,\n closeAll\n };\n const getCurrentModal = () => {\n const currentModal = stateRef.current.current;\n switch (currentModal == null ? void 0 : currentModal.type) {\n case \"context\": {\n const _a = currentModal.props, { innerProps } = _a, rest = __objRest(_a, [\"innerProps\"]);\n const ContextModal = modals[currentModal.ctx];\n return {\n modalProps: rest,\n content: /* @__PURE__ */ React.createElement(ContextModal, {\n innerProps,\n context: ctx,\n id: currentModal.id\n })\n };\n }\n case \"confirm\": {\n const { modalProps: separatedModalProps, confirmProps: separatedConfirmProps } = separateConfirmModalProps(currentModal.props);\n return {\n modalProps: separatedModalProps,\n content: /* @__PURE__ */ React.createElement(ConfirmModal, __spreadProps(__spreadValues({}, separatedConfirmProps), {\n id: currentModal.id,\n labels: currentModal.props.labels || labels\n }))\n };\n }\n case \"content\": {\n const _b = currentModal.props, { children: currentModalChildren } = _b, rest = __objRest(_b, [\"children\"]);\n return {\n modalProps: rest,\n content: /* @__PURE__ */ React.createElement(React.Fragment, null, currentModalChildren)\n };\n }\n default: {\n return {\n modalProps: {},\n content: null\n };\n }\n }\n };\n const { modalProps: currentModalProps, content } = getCurrentModal();\n return /* @__PURE__ */ React.createElement(ModalsContext.Provider, {\n value: ctx\n }, /* @__PURE__ */ React.createElement(Modal, __spreadProps(__spreadValues(__spreadValues({\n zIndex: getDefaultZIndex(\"modal\") + 1\n }, modalProps), currentModalProps), {\n opened: state.modals.length > 0,\n onClose: () => closeModal(state.current.id)\n }), content), children);\n}\n\nexport { ModalsProvider };\n//# sourceMappingURL=ModalsProvider.js.map\n","'use client';\nimport { createContext, Component, createElement, isValidElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback === null || isValidElement(fallback)) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","import t,{Component as e}from\"react\";import r from\"prop-types\";import n from\"react-fast-compare\";import i from\"invariant\";import o from\"shallowequal\";function a(){return a=Object.assign||function(t){for(var e=1;e=0||(i[r]=t[r]);return i}var l={BASE:\"base\",BODY:\"body\",HEAD:\"head\",HTML:\"html\",LINK:\"link\",META:\"meta\",NOSCRIPT:\"noscript\",SCRIPT:\"script\",STYLE:\"style\",TITLE:\"title\",FRAGMENT:\"Symbol(react.fragment)\"},p={rel:[\"amphtml\",\"canonical\",\"alternate\"]},f={type:[\"application/ld+json\"]},d={charset:\"\",name:[\"robots\",\"description\"],property:[\"og:type\",\"og:title\",\"og:url\",\"og:image\",\"og:image:alt\",\"og:description\",\"twitter:url\",\"twitter:title\",\"twitter:description\",\"twitter:image\",\"twitter:image:alt\",\"twitter:card\",\"twitter:site\"]},h=Object.keys(l).map(function(t){return l[t]}),m={accesskey:\"accessKey\",charset:\"charSet\",class:\"className\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",\"http-equiv\":\"httpEquiv\",itemprop:\"itemProp\",tabindex:\"tabIndex\"},y=Object.keys(m).reduce(function(t,e){return t[m[e]]=e,t},{}),T=function(t,e){for(var r=t.length-1;r>=0;r-=1){var n=t[r];if(Object.prototype.hasOwnProperty.call(n,e))return n[e]}return null},g=function(t){var e=T(t,l.TITLE),r=T(t,\"titleTemplate\");if(Array.isArray(e)&&(e=e.join(\"\")),r&&e)return r.replace(/%s/g,function(){return e});var n=T(t,\"defaultTitle\");return e||n||void 0},b=function(t){return T(t,\"onChangeClientState\")||function(){}},v=function(t,e){return e.filter(function(e){return void 0!==e[t]}).map(function(e){return e[t]}).reduce(function(t,e){return a({},t,e)},{})},A=function(t,e){return e.filter(function(t){return void 0!==t[l.BASE]}).map(function(t){return t[l.BASE]}).reverse().reduce(function(e,r){if(!e.length)for(var n=Object.keys(r),i=0;i/g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")},x=function(t){return Object.keys(t).reduce(function(e,r){var n=void 0!==t[r]?r+'=\"'+t[r]+'\"':\"\"+r;return e?e+\" \"+n:n},\"\")},L=function(t,e){return void 0===e&&(e={}),Object.keys(t).reduce(function(e,r){return e[m[r]||r]=t[r],e},e)},j=function(e,r){return r.map(function(r,n){var i,o=((i={key:n})[\"data-rh\"]=!0,i);return Object.keys(r).forEach(function(t){var e=m[t]||t;\"innerHTML\"===e||\"cssText\"===e?o.dangerouslySetInnerHTML={__html:r.innerHTML||r.cssText}:o[e]=r[t]}),t.createElement(e,o)})},M=function(e,r,n){switch(e){case l.TITLE:return{toComponent:function(){return n=r.titleAttributes,(i={key:e=r.title})[\"data-rh\"]=!0,o=L(n,i),[t.createElement(l.TITLE,o,e)];var e,n,i,o},toString:function(){return function(t,e,r,n){var i=x(r),o=S(e);return i?\"<\"+t+' data-rh=\"true\" '+i+\">\"+w(o,n)+\"\":\"<\"+t+' data-rh=\"true\">'+w(o,n)+\"\"}(e,r.title,r.titleAttributes,n)}};case\"bodyAttributes\":case\"htmlAttributes\":return{toComponent:function(){return L(r)},toString:function(){return x(r)}};default:return{toComponent:function(){return j(e,r)},toString:function(){return function(t,e,r){return e.reduce(function(e,n){var i=Object.keys(n).filter(function(t){return!(\"innerHTML\"===t||\"cssText\"===t)}).reduce(function(t,e){var i=void 0===n[e]?e:e+'=\"'+w(n[e],r)+'\"';return t?t+\" \"+i:i},\"\"),o=n.innerHTML||n.cssText||\"\",a=-1===P.indexOf(t);return e+\"<\"+t+' data-rh=\"true\" '+i+(a?\"/>\":\">\"+o+\"\")},\"\")}(e,r,n)}}}},k=function(t){var e=t.baseTag,r=t.bodyAttributes,n=t.encode,i=t.htmlAttributes,o=t.noscriptTags,a=t.styleTags,s=t.title,c=void 0===s?\"\":s,u=t.titleAttributes,h=t.linkTags,m=t.metaTags,y=t.scriptTags,T={toComponent:function(){},toString:function(){return\"\"}};if(t.prioritizeSeoTags){var g=function(t){var e=t.linkTags,r=t.scriptTags,n=t.encode,i=E(t.metaTags,d),o=E(e,p),a=E(r,f);return{priorityMethods:{toComponent:function(){return[].concat(j(l.META,i.priority),j(l.LINK,o.priority),j(l.SCRIPT,a.priority))},toString:function(){return M(l.META,i.priority,n)+\" \"+M(l.LINK,o.priority,n)+\" \"+M(l.SCRIPT,a.priority,n)}},metaTags:i.default,linkTags:o.default,scriptTags:a.default}}(t);T=g.priorityMethods,h=g.linkTags,m=g.metaTags,y=g.scriptTags}return{priority:T,base:M(l.BASE,e,n),bodyAttributes:M(\"bodyAttributes\",r,n),htmlAttributes:M(\"htmlAttributes\",i,n),link:M(l.LINK,h,n),meta:M(l.META,m,n),noscript:M(l.NOSCRIPT,o,n),script:M(l.SCRIPT,y,n),style:M(l.STYLE,a,n),title:M(l.TITLE,{title:c,titleAttributes:u},n)}},H=[],N=function(t,e){var r=this;void 0===e&&(e=\"undefined\"!=typeof document),this.instances=[],this.value={setHelmet:function(t){r.context.helmet=t},helmetInstances:{get:function(){return r.canUseDOM?H:r.instances},add:function(t){(r.canUseDOM?H:r.instances).push(t)},remove:function(t){var e=(r.canUseDOM?H:r.instances).indexOf(t);(r.canUseDOM?H:r.instances).splice(e,1)}}},this.context=t,this.canUseDOM=e,e||(t.helmet=k({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:\"\",titleAttributes:{}}))},R=t.createContext({}),D=r.shape({setHelmet:r.func,helmetInstances:r.shape({get:r.func,add:r.func,remove:r.func})}),U=\"undefined\"!=typeof document,q=/*#__PURE__*/function(e){function r(t){var n;return(n=e.call(this,t)||this).helmetData=new N(n.props.context,r.canUseDOM),n}return s(r,e),r.prototype.render=function(){/*#__PURE__*/return t.createElement(R.Provider,{value:this.helmetData.value},this.props.children)},r}(e);q.canUseDOM=U,q.propTypes={context:r.shape({helmet:r.shape()}),children:r.node.isRequired},q.defaultProps={context:{}},q.displayName=\"HelmetProvider\";var Y=function(t,e){var r,n=document.head||document.querySelector(l.HEAD),i=n.querySelectorAll(t+\"[data-rh]\"),o=[].slice.call(i),a=[];return e&&e.length&&e.forEach(function(e){var n=document.createElement(t);for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(\"innerHTML\"===i?n.innerHTML=e.innerHTML:\"cssText\"===i?n.styleSheet?n.styleSheet.cssText=e.cssText:n.appendChild(document.createTextNode(e.cssText)):n.setAttribute(i,void 0===e[i]?\"\":e[i]));n.setAttribute(\"data-rh\",\"true\"),o.some(function(t,e){return r=e,n.isEqualNode(t)})?o.splice(r,1):a.push(n)}),o.forEach(function(t){return t.parentNode.removeChild(t)}),a.forEach(function(t){return n.appendChild(t)}),{oldTags:o,newTags:a}},B=function(t,e){var r=document.getElementsByTagName(t)[0];if(r){for(var n=r.getAttribute(\"data-rh\"),i=n?n.split(\",\"):[],o=[].concat(i),a=Object.keys(e),s=0;s=0;p-=1)r.removeAttribute(o[p]);i.length===o.length?r.removeAttribute(\"data-rh\"):r.getAttribute(\"data-rh\")!==a.join(\",\")&&r.setAttribute(\"data-rh\",a.join(\",\"))}},K=function(t,e){var r=t.baseTag,n=t.htmlAttributes,i=t.linkTags,o=t.metaTags,a=t.noscriptTags,s=t.onChangeClientState,c=t.scriptTags,u=t.styleTags,p=t.title,f=t.titleAttributes;B(l.BODY,t.bodyAttributes),B(l.HTML,n),function(t,e){void 0!==t&&document.title!==t&&(document.title=S(t)),B(l.TITLE,e)}(p,f);var d={baseTag:Y(l.BASE,r),linkTags:Y(l.LINK,i),metaTags:Y(l.META,o),noscriptTags:Y(l.NOSCRIPT,a),scriptTags:Y(l.SCRIPT,c),styleTags:Y(l.STYLE,u)},h={},m={};Object.keys(d).forEach(function(t){var e=d[t],r=e.newTags,n=e.oldTags;r.length&&(h[t]=r),n.length&&(m[t]=d[t].oldTags)}),e&&e(),s(t,h,m)},_=null,z=/*#__PURE__*/function(t){function e(){for(var e,r=arguments.length,n=new Array(r),i=0;i elements are self-closing and can not contain children. Refer to our API for more information.\")}},o.flattenArrayTypeChildren=function(t){var e,r=t.child,n=t.arrayTypeChildren;return a({},n,((e={})[r.type]=[].concat(n[r.type]||[],[a({},t.newChildProps,this.mapNestedChildrenToProps(r,t.nestedChildren))]),e))},o.mapObjectTypeChildren=function(t){var e,r,n=t.child,i=t.newProps,o=t.newChildProps,s=t.nestedChildren;switch(n.type){case l.TITLE:return a({},i,((e={})[n.type]=s,e.titleAttributes=a({},o),e));case l.BODY:return a({},i,{bodyAttributes:a({},o)});case l.HTML:return a({},i,{htmlAttributes:a({},o)});default:return a({},i,((r={})[n.type]=a({},o),r))}},o.mapArrayTypeChildrenToProps=function(t,e){var r=a({},e);return Object.keys(t).forEach(function(e){var n;r=a({},r,((n={})[e]=t[e],n))}),r},o.warnOnInvalidChildren=function(t,e){return i(h.some(function(e){return t.type===e}),\"function\"==typeof t.type?\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\":\"Only elements types \"+h.join(\", \")+\" are allowed. Helmet does not support rendering <\"+t.type+\"> elements. Refer to our API for more information.\"),i(!e||\"string\"==typeof e||Array.isArray(e)&&!e.some(function(t){return\"string\"!=typeof t}),\"Helmet expects a string as a child of <\"+t.type+\">. Did you forget to wrap your children in braces? ( <\"+t.type+\">{``} ) Refer to our API for more information.\"),!0},o.mapChildrenToProps=function(e,r){var n=this,i={};return t.Children.forEach(e,function(t){if(t&&t.props){var e=t.props,o=e.children,a=u(e,F),s=Object.keys(a).reduce(function(t,e){return t[y[e]||e]=a[e],t},{}),c=t.type;switch(\"symbol\"==typeof c?c=c.toString():n.warnOnInvalidChildren(t,o),c){case l.FRAGMENT:r=n.mapChildrenToProps(o,r);break;case l.LINK:case l.META:case l.NOSCRIPT:case l.SCRIPT:case l.STYLE:i=n.flattenArrayTypeChildren({child:t,arrayTypeChildren:i,newChildProps:s,nestedChildren:o});break;default:r=n.mapObjectTypeChildren({child:t,newProps:r,newChildProps:s,nestedChildren:o})}}}),this.mapArrayTypeChildrenToProps(i,r)},o.render=function(){var e=this.props,r=e.children,n=u(e,G),i=a({},n),o=n.helmetData;return r&&(i=this.mapChildrenToProps(r,i)),!o||o instanceof N||(o=new N(o.context,o.instances)),o?/*#__PURE__*/t.createElement(z,a({},i,{context:o.value,helmetData:void 0})):/*#__PURE__*/t.createElement(R.Consumer,null,function(e){/*#__PURE__*/return t.createElement(z,a({},i,{context:e}))})},r}(e);W.propTypes={base:r.object,bodyAttributes:r.object,children:r.oneOfType([r.arrayOf(r.node),r.node]),defaultTitle:r.string,defer:r.bool,encodeSpecialCharacters:r.bool,htmlAttributes:r.object,link:r.arrayOf(r.object),meta:r.arrayOf(r.object),noscript:r.arrayOf(r.object),onChangeClientState:r.func,script:r.arrayOf(r.object),style:r.arrayOf(r.object),title:r.string,titleAttributes:r.object,titleTemplate:r.string,prioritizeSeoTags:r.bool,helmetData:r.object},W.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},W.displayName=\"Helmet\";export{W as Helmet,N as HelmetData,q as HelmetProvider};\n//# sourceMappingURL=index.module.js.map\n","function createSyncStoragePersister({\n storage,\n key = \"REACT_QUERY_OFFLINE_CACHE\",\n throttleTime = 1000,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n retry\n}) {\n if (storage) {\n const trySave = persistedClient => {\n try {\n storage.setItem(key, serialize(persistedClient));\n return;\n } catch (error) {\n return error;\n }\n };\n\n return {\n persistClient: throttle(persistedClient => {\n let client = persistedClient;\n let error = trySave(client);\n let errorCount = 0;\n\n while (error && client) {\n errorCount++;\n client = retry == null ? void 0 : retry({\n persistedClient: client,\n error,\n errorCount\n });\n\n if (client) {\n error = trySave(client);\n }\n }\n }, throttleTime),\n restoreClient: () => {\n const cacheString = storage.getItem(key);\n\n if (!cacheString) {\n return;\n }\n\n return deserialize(cacheString);\n },\n removeClient: () => {\n storage.removeItem(key);\n }\n };\n }\n\n return {\n persistClient: noop,\n restoreClient: () => undefined,\n removeClient: noop\n };\n}\n\nfunction throttle(func, wait = 100) {\n let timer = null;\n let params;\n return function (...args) {\n params = args;\n\n if (timer === null) {\n timer = setTimeout(() => {\n func(...params);\n timer = null;\n }, wait);\n }\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\nfunction noop() {}\n\nexport { createSyncStoragePersister };\n//# sourceMappingURL=index.mjs.map\n","class Subscribable {\n constructor() {\n this.listeners = new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n const identity = {\n listener\n };\n this.listeners.add(identity);\n this.onSubscribe();\n return () => {\n this.listeners.delete(identity);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.size > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n const changed = this.focused !== focused;\n\n if (changed) {\n this.focused = focused;\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nconst onlineEvents = ['online', 'offline'];\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n onlineEvents.forEach(event => {\n window.addEventListener(event, listener, false);\n });\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach(event => {\n window.removeEventListener(event, listener);\n });\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n const changed = this.online !== online;\n\n if (changed) {\n this.online = online;\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\"Missing queryFn for queryKey '\" + this.options.queryHash + \"'\");\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error(this.queryHash + \" data is undefined\"));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject(\"Missing queryFn for queryKey '\" + context.options.queryHash + \"'\"));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = new Set();\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n const result = this.createResult(query, options);\n\n if (shouldAssignObserverCurrentProperties(this, result, options)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.currentResult = result;\n this.currentResultOptions = this.options;\n this.currentResultState = this.currentQuery.state;\n }\n\n return result;\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === 'function' ? notifyOnChangeProps() : notifyOnChangeProps;\n\n if (notifyOnChangePropsValue === 'all' || !notifyOnChangePropsValue && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangePropsValue != null ? notifyOnChangePropsValue : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n} // this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\n\n\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult, options) {\n // it is important to keep this condition like this for three reasons:\n // 1. It will get removed in the v5\n // 2. it reads: don't update the properties if we want to keep the previous\n // data.\n // 3. The opposite condition (!options.keepPreviousData) would fallthrough\n // and will result in a bad decision\n if (options.keepPreviousData) {\n return false;\n } // this means we want to put some placeholder data when pending and queryKey\n // changed.\n\n\n if (options.placeholderData !== undefined) {\n // re-assign properties only if current data is placeholder data\n // which means that data did not arrive yet, so, if there is some cached data\n // we need to \"prepare\" to receive it\n return optimisticResult.isPlaceholderData;\n } // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n\n\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n } // basically, just keep previous properties if nothing changed\n\n\n return false;\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","import { getDefaultState } from './mutation.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { shallowEqualObjects } from './utils.mjs';\n\n// CLASS\nclass MutationObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.setOptions(options);\n this.bindMethods();\n this.updateResult();\n }\n\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n setOptions(options) {\n var _this$currentMutation;\n\n const prevOptions = this.options;\n this.options = this.client.defaultMutationOptions(options);\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this\n });\n }\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.setOptions(this.options);\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$currentMutation2;\n\n (_this$currentMutation2 = this.currentMutation) == null ? void 0 : _this$currentMutation2.removeObserver(this);\n }\n }\n\n onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n const notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n }\n\n mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n });\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n }\n\n updateResult() {\n const state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n const result = { ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n };\n this.currentResult = result;\n }\n\n notify(options) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;\n\n (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);\n } else if (options.onError) {\n var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;\n\n (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n }\n });\n }\n\n}\n\nexport { MutationObserver };\n//# sourceMappingURL=mutationObserver.mjs.map\n","// TYPES\n// FUNCTIONS\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state\n };\n} // Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\n\n\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash\n };\n}\n\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === 'success';\n}\nfunction dehydrate(client, options = {}) {\n const mutations = [];\n const queries = [];\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;\n client.getMutationCache().getAll().forEach(mutation => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation));\n }\n });\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;\n client.getQueryCache().getAll().forEach(query => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query));\n }\n });\n }\n\n return {\n mutations,\n queries\n };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return;\n }\n\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const queries = dehydratedState.queries || [];\n mutations.forEach(dehydratedMutation => {\n var _options$defaultOptio;\n\n mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),\n mutationKey: dehydratedMutation.mutationKey\n }, dehydratedMutation.state);\n });\n queries.forEach(dehydratedQuery => {\n var _options$defaultOptio2;\n\n const query = queryCache.get(dehydratedQuery.queryHash); // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n\n const dehydratedQueryState = { ...dehydratedQuery.state,\n fetchStatus: 'idle'\n }; // Do not hydrate if an existing query exists with newer data\n\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState);\n }\n\n return;\n } // Restore query\n\n\n queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash\n }, dehydratedQueryState);\n });\n}\n\nexport { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate };\n//# sourceMappingURL=hydration.mjs.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use client';\nimport { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.mjs.map\n","'use client';\nimport * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.mjs.map\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { shouldThrowError } from './utils.mjs';\n\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n const queryClient = useQueryClient({\n context: options.context\n });\n const [observer] = React.useState(() => new MutationObserver(queryClient, options));\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n const mutate = React.useCallback((variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n }, [observer]);\n\n if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {\n throw result.error;\n }\n\n return { ...result,\n mutate,\n mutateAsync: result.mutate\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nfunction noop() {}\n\nexport { useMutation };\n//# sourceMappingURL=useMutation.mjs.map\n","import { hydrate, dehydrate } from '@tanstack/query-core';\n\n/**\n * Checks if emitted event is about cache change and not about observers.\n * Useful for persist, where we only want to trigger save when cache is changed.\n */\nconst cacheableEventTypes = ['added', 'removed', 'updated'];\n\nfunction isCacheableEventType(eventType) {\n return cacheableEventTypes.includes(eventType);\n}\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\n\n\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n\n if (expired || busted) {\n persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err);\n queryClient.getLogger().warn('Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.');\n }\n\n persister.removeClient();\n }\n}\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\n\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\n\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe(event => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n const unusbscribeMutationCache = props.queryClient.getMutationCache().subscribe(event => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n return () => {\n unsubscribeQueryCache();\n unusbscribeMutationCache();\n };\n}\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\n\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe == null ? void 0 : persistQueryClientUnsubscribe();\n }; // Attempt restore\n\n\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\n\nexport { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe };\n//# sourceMappingURL=persist.mjs.map\n","export function defineChain(chain, config = {}) {\n const { fees = chain.fees, formatters = chain.formatters, serializers = chain.serializers, } = config;\n return {\n ...chain,\n fees,\n formatters,\n serializers,\n };\n}\n//# sourceMappingURL=defineChain.js.map","export const version = '1.19.10';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nexport const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\nexport const getVersion = () => `viem@${version}`;\n//# sourceMappingURL=utils.js.map","import { getVersion } from './utils.js';\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n super();\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ViemError'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: getVersion()\n });\n const details = args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details;\n const docsPath = args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath;\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: https://viem.sh${docsPath}.html${args.docsSlug ? `#${args.docsSlug}` : ''}`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n');\n if (args.cause)\n this.cause = args.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\n/** @deprecated */\nexport class DataLengthTooLongError extends BaseError {\n constructor({ consumed, length }) {\n super(`Consumed bytes (${consumed}) is shorter than data length (${length - 1}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DataLengthTooLongError'\n });\n }\n}\n/** @deprecated */\nexport class DataLengthTooShortError extends BaseError {\n constructor({ length, dataLength }) {\n super(`Data length (${dataLength - 1}) is shorter than consumed bytes length (${length - 1}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DataLengthTooShortError'\n });\n }\n}\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntegerOutOfRangeError'\n });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidBytesBooleanError'\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidHexBooleanError'\n });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidHexValueError'\n });\n }\n}\n/** @deprecated */\nexport class OffsetOutOfBoundsError extends BaseError {\n constructor({ nextOffset, offset }) {\n super(`Next offset (${nextOffset}) is greater than previous offset + consumed bytes (${offset})`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffsetOutOfBoundsError'\n });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SizeOverflowError'\n });\n }\n}\n//# sourceMappingURL=encoding.js.map","export function isHex(value, { strict = true } = {}) {\n if (!value)\n return false;\n if (typeof value !== 'string')\n return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n if (isHex(value, { strict: false }))\n return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n//# sourceMappingURL=size.js.map","export function trim(hexOrBytes, { dir = 'left' } = {}) {\n let data = typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right')\n data = `${data}0`;\n return `0x${data.length % 2 === 1 ? `0${data}` : data}`;\n }\n return data;\n}\n//# sourceMappingURL=trim.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \"${offset}\" is out-of-bounds (size: ${size}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SliceOffsetOutOfBoundsError'\n });\n }\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=data.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size });\n return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n if (size === null)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n if (size === null)\n return bytes;\n if (bytes.length > size)\n throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n//# sourceMappingURL=pad.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html\n * - Example: https://viem.sh/docs/utilities/toHex.html#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0\n ? (1n << BigInt(size * 8)) + BigInt(value)\n : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html\n * - Example: https://viem.sh/docs/utilities/toBytes.html#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts);\n if (typeof value === 'boolean')\n return boolToBytes(value, opts);\n if (isHex(value))\n return hexToBytes(value, opts);\n return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value, opts = {}) {\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { size: opts.size });\n }\n return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\nfunction charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = pad(hex, { dir: 'right', size: opts.size });\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n const hex = numberToHex(value, opts);\n return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(value, opts = {}) {\n const bytes = encoder.encode(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { dir: 'right', size: opts.size });\n }\n return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html\n * - Example: https://viem.sh/docs/utilities/fromHex.html#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n};\nexport function formatTransaction(transaction) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type ? transactionType[transaction.type] : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n };\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity)\n return Number(transaction.yParity);\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n)\n return 0;\n if (transaction_.v === 1n || transaction_.v === 28n)\n return 1;\n if (transaction_.v >= 35n)\n return transaction_.v % 2n === 0n ? 1 : 0;\n }\n return undefined;\n })();\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n delete transaction_.yParity;\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n }\n return transaction_;\n}\nexport const defineTransaction = /*#__PURE__*/ defineFormatter('transaction', formatTransaction);\n//# sourceMappingURL=transaction.js.map","import { defineFormatter } from './formatter.js';\nimport { formatTransaction } from './transaction.js';\nexport function formatBlock(block) {\n const transactions = block.transactions?.map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n return formatTransaction(transaction);\n });\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n };\n}\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock);\n//# sourceMappingURL=block.js.map","export function formatLog(log, { args, eventName } = {}) {\n return {\n ...log,\n blockHash: log.blockHash ? log.blockHash : null,\n blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n logIndex: log.logIndex ? Number(log.logIndex) : null,\n transactionHash: log.transactionHash ? log.transactionHash : null,\n transactionIndex: log.transactionIndex\n ? Number(log.transactionIndex)\n : null,\n ...(eventName ? { args, eventName } : {}),\n };\n}\n//# sourceMappingURL=log.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nimport { formatLog } from './log.js';\nimport { transactionType } from './transaction.js';\nconst statuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n};\nexport function formatTransactionReceipt(transactionReceipt) {\n return {\n ...transactionReceipt,\n blockNumber: transactionReceipt.blockNumber\n ? BigInt(transactionReceipt.blockNumber)\n : null,\n contractAddress: transactionReceipt.contractAddress\n ? transactionReceipt.contractAddress\n : null,\n cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n ? BigInt(transactionReceipt.cumulativeGasUsed)\n : null,\n effectiveGasPrice: transactionReceipt.effectiveGasPrice\n ? BigInt(transactionReceipt.effectiveGasPrice)\n : null,\n gasUsed: transactionReceipt.gasUsed\n ? BigInt(transactionReceipt.gasUsed)\n : null,\n logs: transactionReceipt.logs\n ? transactionReceipt.logs.map((log) => formatLog(log))\n : null,\n to: transactionReceipt.to ? transactionReceipt.to : null,\n transactionIndex: transactionReceipt.transactionIndex\n ? hexToNumber(transactionReceipt.transactionIndex)\n : null,\n status: transactionReceipt.status\n ? statuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[transactionReceipt.type] || transactionReceipt.type\n : null,\n };\n}\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter('transactionReceipt', formatTransactionReceipt);\n//# sourceMappingURL=transactionReceipt.js.map","import { numberToHex } from '../encoding/toHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const rpcTransactionType = {\n legacy: '0x0',\n eip2930: '0x1',\n eip1559: '0x2',\n};\nexport function formatTransactionRequest(transactionRequest) {\n return {\n ...transactionRequest,\n gas: typeof transactionRequest.gas !== 'undefined'\n ? numberToHex(transactionRequest.gas)\n : undefined,\n gasPrice: typeof transactionRequest.gasPrice !== 'undefined'\n ? numberToHex(transactionRequest.gasPrice)\n : undefined,\n maxFeePerGas: typeof transactionRequest.maxFeePerGas !== 'undefined'\n ? numberToHex(transactionRequest.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: typeof transactionRequest.maxPriorityFeePerGas !== 'undefined'\n ? numberToHex(transactionRequest.maxPriorityFeePerGas)\n : undefined,\n nonce: typeof transactionRequest.nonce !== 'undefined'\n ? numberToHex(transactionRequest.nonce)\n : undefined,\n type: typeof transactionRequest.type !== 'undefined'\n ? rpcTransactionType[transactionRequest.type]\n : undefined,\n value: typeof transactionRequest.value !== 'undefined'\n ? numberToHex(transactionRequest.value)\n : undefined,\n };\n}\nexport const defineTransactionRequest = /*#__PURE__*/ defineFormatter('transactionRequest', formatTransactionRequest);\n//# sourceMappingURL=transactionRequest.js.map","import { BaseError } from './base.js';\nexport class InvalidAddressError extends BaseError {\n constructor({ address }) {\n super(`Address \"${address}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAddressError'\n });\n }\n}\n//# sourceMappingURL=address.js.map","import { BaseError } from './base.js';\nexport class ChainDoesNotSupportContract extends BaseError {\n constructor({ blockNumber, chain, contract, }) {\n super(`Chain \"${chain.name}\" does not support contract \"${contract.name}\".`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainDoesNotSupportContract'\n });\n }\n}\nexport class ChainMismatchError extends BaseError {\n constructor({ chain, currentChainId, }) {\n super(`The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`, {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainMismatchError'\n });\n }\n}\nexport class ChainNotFoundError extends BaseError {\n constructor() {\n super([\n 'No chain was provided to the request.',\n 'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainNotFoundError'\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ClientChainNotConfiguredError'\n });\n }\n}\nexport class InvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(`Chain ID \"${chainId}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidChainIdError'\n });\n }\n}\n//# sourceMappingURL=chain.js.map","export const etherUnits = {\n gwei: 9,\n wei: 18,\n};\nexport const gweiUnits = {\n ether: -9,\n wei: 9,\n};\nexport const weiUnits = {\n ether: -18,\n gwei: -9,\n};\n//# sourceMappingURL=unit.js.map","/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits.html\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value, decimals) {\n let display = value.toString();\n const negative = display.startsWith('-');\n if (negative)\n display = display.slice(1);\n display = display.padStart(decimals, '0');\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ];\n fraction = fraction.replace(/(0+)$/, '');\n return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;\n}\n//# sourceMappingURL=formatUnits.js.map","import { gweiUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei.html\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei, unit = 'wei') {\n return formatUnits(wei, gweiUnits[unit]);\n}\n//# sourceMappingURL=formatGwei.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nclass ExecutionRevertedError extends BaseError {\n constructor({ cause, message, } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '');\n super(`Execution reverted ${reason ? `with reason: ${reason}` : 'for an unknown reason'}.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ExecutionRevertedError'\n });\n }\n}\nObject.defineProperty(ExecutionRevertedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n});\nObject.defineProperty(ExecutionRevertedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /execution reverted/\n});\nexport { ExecutionRevertedError };\nclass FeeCapTooHighError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}) cannot be higher than the maximum allowed value (2^256-1).`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeCapTooHigh'\n });\n }\n}\nObject.defineProperty(FeeCapTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n});\nexport { FeeCapTooHighError };\nclass FeeCapTooLowError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''} gwei) cannot be lower than the block base fee.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeCapTooLow'\n });\n }\n}\nObject.defineProperty(FeeCapTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n});\nexport { FeeCapTooLowError };\nclass NonceTooHighError extends BaseError {\n constructor({ cause, nonce } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is higher than the next one expected.`, { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceTooHighError'\n });\n }\n}\nObject.defineProperty(NonceTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too high/\n});\nexport { NonceTooHighError };\nclass NonceTooLowError extends BaseError {\n constructor({ cause, nonce } = {}) {\n super([\n `Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'), { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceTooLowError'\n });\n }\n}\nObject.defineProperty(NonceTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too low|transaction already imported|already known/\n});\nexport { NonceTooLowError };\nclass NonceMaxValueError extends BaseError {\n constructor({ cause, nonce } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}exceeds the maximum allowed nonce.`, { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceMaxValueError'\n });\n }\n}\nObject.defineProperty(NonceMaxValueError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce has max value/\n});\nexport { NonceMaxValueError };\nclass InsufficientFundsError extends BaseError {\n constructor({ cause } = {}) {\n super([\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'), {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InsufficientFundsError'\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds/\n});\nexport { InsufficientFundsError };\nclass IntrinsicGasTooHighError extends BaseError {\n constructor({ cause, gas } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction exceeds the limit allowed for the block.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntrinsicGasTooHighError'\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too high|gas limit reached/\n});\nexport { IntrinsicGasTooHighError };\nclass IntrinsicGasTooLowError extends BaseError {\n constructor({ cause, gas } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction is too low.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntrinsicGasTooLowError'\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too low/\n});\nexport { IntrinsicGasTooLowError };\nclass TransactionTypeNotSupportedError extends BaseError {\n constructor({ cause }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionTypeNotSupportedError'\n });\n }\n}\nObject.defineProperty(TransactionTypeNotSupportedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /transaction type not valid/\n});\nexport { TransactionTypeNotSupportedError };\nclass TipAboveFeeCapError extends BaseError {\n constructor({ cause, maxPriorityFeePerGas, maxFeePerGas, } = {}) {\n super([\n `The provided tip (\\`maxPriorityFeePerGas\\`${maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''}) cannot be higher than the fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}).`,\n ].join('\\n'), {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TipAboveFeeCapError'\n });\n }\n}\nObject.defineProperty(TipAboveFeeCapError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n});\nexport { TipAboveFeeCapError };\nexport class UnknownNodeError extends BaseError {\n constructor({ cause }) {\n super(`An error occurred while executing: ${cause?.shortMessage}`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownNodeError'\n });\n }\n}\n//# sourceMappingURL=node.js.map","const addressRegex = /^0x[a-fA-F0-9]{40}$/;\nexport function isAddress(address) {\n return addressRegex.test(address);\n}\n//# sourceMappingURL=isAddress.js.map","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","export function execTyped(regex, string) {\n const match = regex.exec(string);\n return match?.groups;\n}\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\nexport const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const isTupleRegex = /^\\(.+?\\).*?$/;\n//# sourceMappingURL=regex.js.map","import { execTyped } from '../regex.js';\nconst tupleRegex = /^tuple(?(\\[(\\d*)\\])*)$/;\nexport function formatAbiParameter(abiParameter) {\n let type = abiParameter.type;\n if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n type = '(';\n const length = abiParameter.components.length;\n for (let i = 0; i < length; i++) {\n const component = abiParameter.components[i];\n type += formatAbiParameter(component);\n if (i < length - 1)\n type += ', ';\n }\n const result = execTyped(tupleRegex, abiParameter.type);\n type += `)${result?.array ?? ''}`;\n return formatAbiParameter({\n ...abiParameter,\n type,\n });\n }\n if ('indexed' in abiParameter && abiParameter.indexed)\n type = `${type} indexed`;\n if (abiParameter.name)\n return `${type} ${abiParameter.name}`;\n return type;\n}\n//# sourceMappingURL=formatAbiParameter.js.map","import { formatAbiParameter, } from './formatAbiParameter.js';\nexport function formatAbiParameters(abiParameters) {\n let params = '';\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n params += formatAbiParameter(abiParameter);\n if (i !== length - 1)\n params += ', ';\n }\n return params;\n}\n//# sourceMappingURL=formatAbiParameters.js.map","import { formatAbiParameters, } from './formatAbiParameters.js';\nexport function formatAbiItem(abiItem) {\n if (abiItem.type === 'function')\n return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n ? ` ${abiItem.stateMutability}`\n : ''}${abiItem.outputs.length\n ? ` returns (${formatAbiParameters(abiItem.outputs)})`\n : ''}`;\n else if (abiItem.type === 'event')\n return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n else if (abiItem.type === 'error')\n return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n else if (abiItem.type === 'constructor')\n return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n else if (abiItem.type === 'fallback')\n return 'fallback()';\n return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.js.map","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, action, \n// Some minifiers drop `Function.prototype.name`, meaning that `action.name`\n// will not work. For that case, the consumer needs to pass the name explicitly.\nname) {\n return (params) => client[action.name || name]?.(params) ?? action(client, params);\n}\n//# sourceMappingURL=getAction.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiConstructorNotFoundError'\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiConstructorParamsNotFoundError'\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), { metaMessages: [`Data: ${data} (${size} bytes)`] });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingDataSizeInvalidError'\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingDataSizeTooSmallError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingZeroDataError'\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingArrayLengthMismatchError'\n });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingBytesSizeMismatchError'\n });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingLengthMismatchError'\n });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorInputsNotFoundError'\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorNotFoundError'\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorSignatureNotFoundError'\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventSignatureEmptyTopicsError'\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventSignatureNotFoundError'\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventNotFoundError'\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionNotFoundError'\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionOutputsNotFoundError'\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionSignatureNotFoundError'\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BytesSizeMismatchError'\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DecodeLogDataMismatch'\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DecodeLogTopicsMismatch'\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiEncodingType'\n });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiDecodingType'\n });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidArrayError'\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidDefinitionTypeError'\n });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnsupportedPackedAbiType'\n });\n }\n}\n//# sourceMappingURL=abi.js.map","import { BaseError } from './base.js';\nexport class FilterTypeNotSupportedError extends BaseError {\n constructor(type) {\n super(`Filter type \"${type}\" is not supported.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FilterTypeNotSupportedError'\n });\n }\n}\n//# sourceMappingURL=log.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\nexport const getFunctionSignature = (fn_) => {\n const fn = (() => {\n if (typeof fn_ === 'string')\n return fn_;\n return formatAbiItem(fn_);\n })();\n return normalizeSignature(fn);\n};\n//# sourceMappingURL=getFunctionSignature.js.map","import { getFunctionSignature, } from './getFunctionSignature.js';\nexport const getEventSignature = (fn) => {\n return getFunctionSignature(fn);\n};\n//# sourceMappingURL=getEventSignature.js.map","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { getEventSignature } from './getEventSignature.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport const getEventSelector = (fn) => hash(getEventSignature(fn));\n//# sourceMappingURL=getEventSelector.js.map","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n return encodeNumber(value, { signed });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== parseInt(paramSize))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: parseInt(paramSize),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed }) {\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","import { slice } from '../data/slice.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { getFunctionSignature, } from './getFunctionSignature.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport const getFunctionSelector = (fn) => slice(hash(getFunctionSignature(fn)), 0, 4);\n//# sourceMappingURL=getFunctionSelector.js.map","import { isHex } from '../../utils/data/isHex.js';\nimport { getEventSelector } from '../../utils/hash/getEventSelector.js';\nimport { getFunctionSelector, } from '../../utils/hash/getFunctionSelector.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function getAbiItem({ abi, args = [], name, }) {\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return getFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return getEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched)\n return abiItem;\n }\n return abiItems[0];\n}\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg);\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n//# sourceMappingURL=getAbiItem.js.map","import { AbiEventNotFoundError, } from '../../errors/abi.js';\nimport { FilterTypeNotSupportedError, } from '../../errors/log.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { getEventSelector, } from '../hash/getEventSelector.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nexport function encodeEventTopics({ abi, eventName, args }) {\n let abiItem = abi[0];\n if (eventName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: eventName,\n });\n if (!abiItem)\n throw new AbiEventNotFoundError(eventName, {\n docsPath: '/docs/contract/encodeEventTopics',\n });\n }\n if (abiItem.type !== 'event')\n throw new AbiEventNotFoundError(undefined, {\n docsPath: '/docs/contract/encodeEventTopics',\n });\n const definition = formatAbiItem(abiItem);\n const signature = getEventSelector(definition);\n let topics = [];\n if (args && 'inputs' in abiItem) {\n const indexedInputs = abiItem.inputs?.filter((param) => 'indexed' in param && param.indexed);\n const args_ = Array.isArray(args)\n ? args\n : Object.values(args).length > 0\n ? indexedInputs?.map((x) => args[x.name]) ?? []\n : [];\n if (args_.length > 0) {\n topics =\n indexedInputs?.map((param, i) => Array.isArray(args_[i])\n ? args_[i].map((_, j) => encodeArg({ param, value: args_[i][j] }))\n : args_[i]\n ? encodeArg({ param, value: args_[i] })\n : null) ?? [];\n }\n }\n return [signature, ...topics];\n}\nfunction encodeArg({ param, value, }) {\n if (param.type === 'string' || param.type === 'bytes')\n return keccak256(toBytes(value));\n if (param.type === 'tuple' || param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n throw new FilterTypeNotSupportedError(param.type);\n return encodeAbiParameters([param], [value]);\n}\n//# sourceMappingURL=encodeEventTopics.js.map","/**\n * Scopes `request` to the filter ID. If the client is a fallback, it will\n * listen for responses and scope the child transport `request` function\n * to the successful filter ID.\n */\nexport function createFilterRequestScope(client, { method }) {\n const requestMap = {};\n if (client.transport.type === 'fallback')\n client.transport.onResponse?.(({ method: method_, response: id, status, transport, }) => {\n if (status === 'success' && method === method_)\n requestMap[id] = transport.request;\n });\n return ((id) => requestMap[id] || client.request);\n}\n//# sourceMappingURL=createFilterRequestScope.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs.html).\n *\n * - Docs: https://viem.sh/docs/contract/createContractEventFilter.html\n *\n * @param client - Client to use\n * @param parameters - {@link CreateContractEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateContractEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * })\n */\nexport async function createContractEventFilter(client, { address, abi, args, eventName, fromBlock, strict, toBlock, }) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n const topics = eventName\n ? encodeEventTopics({\n abi,\n args,\n eventName,\n })\n : undefined;\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n topics,\n },\n ],\n });\n return {\n abi,\n args,\n eventName,\n id,\n request: getRequest(id),\n strict,\n type: 'event',\n };\n}\n//# sourceMappingURL=createContractEventFilter.js.map","export function parseAccount(account) {\n if (typeof account === 'string')\n return { address: account, type: 'json-rpc' };\n return account;\n}\n//# sourceMappingURL=parseAccount.js.map","import { AbiFunctionNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { getFunctionSelector, } from '../hash/getFunctionSelector.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem, } from './getAbiItem.js';\nexport function encodeFunctionData({ abi, args, functionName, }) {\n let abiItem = abi[0];\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!abiItem)\n throw new AbiFunctionNotFoundError(functionName, {\n docsPath: '/docs/contract/encodeFunctionData',\n });\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, {\n docsPath: '/docs/contract/encodeFunctionData',\n });\n const definition = formatAbiItem(abiItem);\n const signature = getFunctionSelector(definition);\n const data = 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, (args ?? []))\n : undefined;\n return concatHex([signature, data ?? '0x']);\n}\n//# sourceMappingURL=encodeFunctionData.js.map","// https://docs.soliditylang.org/en/v0.8.16/control-structures.html#panic-via-assert-and-error-via-require\nexport const panicReasons = {\n 1: 'An `assert` condition failed.',\n 17: 'Arithmic operation resulted in underflow or overflow.',\n 18: 'Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).',\n 33: 'Attempted to convert to an invalid type.',\n 34: 'Attempted to access a storage byte array that is incorrectly encoded.',\n 49: 'Performed `.pop()` on an empty array',\n 50: 'Array index is out of bounds.',\n 65: 'Allocated too much memory or created an array which is too large.',\n 81: 'Attempted to call a zero-initialized variable of internal function type.',\n};\nexport const solidityError = {\n inputs: [\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'Error',\n type: 'error',\n};\nexport const solidityPanic = {\n inputs: [\n {\n name: 'reason',\n type: 'uint256',\n },\n ],\n name: 'Panic',\n type: 'error',\n};\n//# sourceMappingURL=solidity.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { isAddress } from './isAddress.js';\nexport function checksumAddress(address_, chainId) {\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n return `0x${address.join('')}`;\n}\nexport function getAddress(address, chainId) {\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';\nimport { checksumAddress, } from '../address/getAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBigInt, hexToBool, hexToNumber, hexToString, } from '../encoding/fromHex.js';\nimport { getArrayComponents, } from './encodeAbiParameters.js';\nexport function decodeAbiParameters(params, data) {\n if (data === '0x' && params.length > 0)\n throw new AbiDecodingZeroDataError();\n if (size(data) && size(data) < 32)\n throw new AbiDecodingDataSizeTooSmallError({\n data,\n params: params,\n size: size(data),\n });\n return decodeParams({\n data,\n params: params,\n });\n}\nfunction decodeParams({ data, params, }) {\n const decodedValues = [];\n let position = 0;\n for (let i = 0; i < params.length; i++) {\n if (position >= size(data))\n throw new AbiDecodingDataSizeTooSmallError({\n data,\n params,\n size: size(data),\n });\n const param = params[i];\n const { consumed, value } = decodeParam({ data, param, position });\n decodedValues.push(value);\n // Step across the data by the amount of data consumed by this parameter.\n position += consumed;\n }\n return decodedValues;\n}\nfunction decodeParam({ data, param, position, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(data, {\n length,\n param: { ...param, type: type },\n position,\n });\n }\n if (param.type === 'tuple') {\n return decodeTuple(data, { param: param, position });\n }\n if (param.type === 'string') {\n return decodeString(data, { position });\n }\n if (param.type.startsWith('bytes')) {\n return decodeBytes(data, { param, position });\n }\n const value = slice(data, position, position + 32, { strict: true });\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n return decodeNumber(value, { param });\n }\n if (param.type === 'address') {\n return decodeAddress(value);\n }\n if (param.type === 'bool') {\n return decodeBool(value);\n }\n throw new InvalidAbiDecodingTypeError(param.type, {\n docsPath: '/docs/contract/decodeAbiParameters',\n });\n}\nfunction decodeAddress(value) {\n return { consumed: 32, value: checksumAddress(slice(value, -20)) };\n}\nfunction decodeArray(data, { param, length, position, }) {\n // If the length of the array is not known in advance (dynamic array),\n // we will need to decode the offset of the array data.\n if (!length) {\n // Get the offset of the array data.\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n // Get the length of the array from the offset.\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const decodedChild = decodeParam({\n data: slice(data, offset + 32),\n param,\n position: consumed,\n });\n consumed += decodedChild.consumed;\n value.push(decodedChild.value);\n }\n return { value, consumed: 32 };\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Get the child type of the array.\n const arrayComponents = getArrayComponents(param.type);\n // If the child type is not known, the array is dynamic.\n const dynamicChild = !arrayComponents?.[0];\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n const decodedChild = decodeParam({\n data: slice(data, offset),\n param,\n position: dynamicChild ? consumed : i * 32,\n });\n consumed += decodedChild.consumed;\n value.push(decodedChild.value);\n }\n return { value, consumed: 32 };\n }\n // If the length of the array is known in advance,\n // and the length of each element in the array is known,\n // the array data is encoded contiguously after the array.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const decodedChild = decodeParam({\n data,\n param,\n position: position + consumed,\n });\n consumed += decodedChild.consumed;\n value.push(decodedChild.value);\n }\n return { value, consumed };\n}\nfunction decodeBool(value) {\n return { consumed: 32, value: hexToBool(value) };\n}\nfunction decodeBytes(data, { param, position }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // If we don't have a size, we're dealing with a dynamic-size array\n // so we need to read the offset of the data part first.\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));\n // If there is no length, we have zero data.\n if (length === 0)\n return { consumed: 32, value: '0x' };\n const value = slice(data, offset + 32, offset + 32 + length, {\n strict: true,\n });\n return { consumed: 32, value };\n }\n const value = slice(data, position, position + parseInt(size), {\n strict: true,\n });\n return { consumed: 32, value };\n}\nfunction decodeNumber(value, { param }) {\n const signed = param.type.startsWith('int');\n const size = parseInt(param.type.split('int')[1] || '256');\n return {\n consumed: 32,\n value: size > 48\n ? hexToBigInt(value, { signed })\n : hexToNumber(value, { signed }),\n };\n}\nfunction decodeString(data, { position }) {\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));\n // If there is no length, we have zero data (empty string).\n if (length === 0)\n return { consumed: 32, value: '' };\n const value = hexToString(trim(slice(data, offset + 32, offset + 32 + length, { strict: true })));\n return { consumed: 32, value };\n}\nfunction decodeTuple(data, { param, position }) {\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n // Decode each component of the tuple, starting at the offset.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const decodedChild = decodeParam({\n data: slice(data, offset),\n param: component,\n position: consumed,\n });\n consumed += decodedChild.consumed;\n value[hasUnnamedChild ? i : component?.name] = decodedChild.value;\n }\n return { consumed: 32, value };\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const decodedChild = decodeParam({\n data,\n param: component,\n position: position + consumed,\n });\n consumed += decodedChild.consumed;\n value[hasUnnamedChild ? i : component?.name] = decodedChild.value;\n }\n return { consumed, value };\n}\nfunction hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({ ...param, type: arrayComponents[1] }))\n return true;\n return false;\n}\n//# sourceMappingURL=decodeAbiParameters.js.map","import { solidityError, solidityPanic } from '../../constants/solidity.js';\nimport { AbiDecodingZeroDataError, AbiErrorSignatureNotFoundError, } from '../../errors/abi.js';\nimport { slice } from '../data/slice.js';\nimport { getFunctionSelector, } from '../hash/getFunctionSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nexport function decodeErrorResult({ abi, data, }) {\n const signature = slice(data, 0, 4);\n if (signature === '0x')\n throw new AbiDecodingZeroDataError();\n const abi_ = [...(abi || []), solidityError, solidityPanic];\n const abiItem = abi_.find((x) => x.type === 'error' && signature === getFunctionSelector(formatAbiItem(x)));\n if (!abiItem)\n throw new AbiErrorSignatureNotFoundError(signature, {\n docsPath: '/docs/contract/decodeErrorResult',\n });\n return {\n abiItem,\n args: ('inputs' in abiItem && abiItem.inputs && abiItem.inputs.length > 0\n ? decodeAbiParameters(abiItem.inputs, slice(data, 4))\n : undefined),\n errorName: abiItem.name,\n };\n}\n//# sourceMappingURL=decodeErrorResult.js.map","export const stringify = (value, replacer, space) => JSON.stringify(value, (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_;\n return typeof replacer === 'function' ? replacer(key, value) : value;\n}, space);\n//# sourceMappingURL=stringify.js.map","import { stringify } from '../stringify.js';\nexport function formatAbiItemWithArgs({ abiItem, args, includeFunctionName = true, includeName = false, }) {\n if (!('name' in abiItem))\n return;\n if (!('inputs' in abiItem))\n return;\n if (!abiItem.inputs)\n return;\n return `${includeFunctionName ? abiItem.name : ''}(${abiItem.inputs\n .map((input, i) => `${includeName && input.name ? `${input.name}: ` : ''}${typeof args[i] === 'object' ? stringify(args[i]) : args[i]}`)\n .join(', ')})`;\n}\n//# sourceMappingURL=formatAbiItemWithArgs.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of ether.\n *\n * - Docs: https://viem.sh/docs/utilities/formatEther.html\n *\n * @example\n * import { formatEther } from 'viem'\n *\n * formatEther(1000000000000000000n)\n * // '1'\n */\nexport function formatEther(wei, unit = 'wei') {\n return formatUnits(wei, etherUnits[unit]);\n}\n//# sourceMappingURL=formatEther.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport function prettyPrint(args) {\n const entries = Object.entries(args)\n .map(([key, value]) => {\n if (value === undefined || value === false)\n return null;\n return [key, value];\n })\n .filter(Boolean);\n const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);\n return entries\n .map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`)\n .join('\\n');\n}\nexport class FeeConflictError extends BaseError {\n constructor() {\n super([\n 'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',\n 'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeConflictError'\n });\n }\n}\nexport class InvalidLegacyVError extends BaseError {\n constructor({ v }) {\n super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidLegacyVError'\n });\n }\n}\nexport class InvalidSerializableTransactionError extends BaseError {\n constructor({ transaction }) {\n super('Cannot infer a transaction type from provided transaction.', {\n metaMessages: [\n 'Provided Transaction:',\n '{',\n prettyPrint(transaction),\n '}',\n '',\n 'To infer the type, either provide:',\n '- a `type` to the Transaction, or',\n '- an EIP-1559 Transaction with `maxFeePerGas`, or',\n '- an EIP-2930 Transaction with `gasPrice` & `accessList`, or',\n '- a Legacy Transaction with `gasPrice`',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializableTransactionError'\n });\n }\n}\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n constructor({ serializedType }) {\n super(`Serialized transaction type \"${serializedType}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializedTransactionType'\n });\n Object.defineProperty(this, \"serializedType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedType = serializedType;\n }\n}\nexport class InvalidSerializedTransactionError extends BaseError {\n constructor({ attributes, serializedTransaction, type, }) {\n const missing = Object.entries(attributes)\n .map(([key, value]) => (typeof value === 'undefined' ? key : undefined))\n .filter(Boolean);\n super(`Invalid serialized transaction of type \"${type}\" was provided.`, {\n metaMessages: [\n `Serialized Transaction: \"${serializedTransaction}\"`,\n missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializedTransactionError'\n });\n Object.defineProperty(this, \"serializedTransaction\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"type\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedTransaction = serializedTransaction;\n this.type = type;\n }\n}\nexport class InvalidStorageKeySizeError extends BaseError {\n constructor({ storageKey }) {\n super(`Size for storage key \"${storageKey}\" is invalid. Expected 32 bytes. Got ${Math.floor((storageKey.length - 2) / 2)} bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidStorageKeySizeError'\n });\n }\n}\nexport class TransactionExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n chain: chain && `${chain?.name} (id: ${chain?.id})`,\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Request Arguments:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionExecutionError'\n });\n this.cause = cause;\n }\n}\nexport class TransactionNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, blockTag, hash, index, }) {\n let identifier = 'Transaction';\n if (blockTag && index !== undefined)\n identifier = `Transaction at block time \"${blockTag}\" at index \"${index}\"`;\n if (blockHash && index !== undefined)\n identifier = `Transaction at block hash \"${blockHash}\" at index \"${index}\"`;\n if (blockNumber && index !== undefined)\n identifier = `Transaction at block number \"${blockNumber}\" at index \"${index}\"`;\n if (hash)\n identifier = `Transaction with hash \"${hash}\"`;\n super(`${identifier} could not be found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionNotFoundError'\n });\n }\n}\nexport class TransactionReceiptNotFoundError extends BaseError {\n constructor({ hash }) {\n super(`Transaction receipt with hash \"${hash}\" could not be found. The Transaction may not be processed on a block yet.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionReceiptNotFoundError'\n });\n }\n}\nexport class WaitForTransactionReceiptTimeoutError extends BaseError {\n constructor({ hash }) {\n super(`Timed out while waiting for transaction with hash \"${hash}\" to be confirmed.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WaitForTransactionReceiptTimeoutError'\n });\n }\n}\n//# sourceMappingURL=transaction.js.map","import { parseAccount } from '../accounts/utils/parseAccount.js';\nimport { panicReasons } from '../constants/solidity.js';\nimport { decodeErrorResult, } from '../utils/abi/decodeErrorResult.js';\nimport { formatAbiItem } from '../utils/abi/formatAbiItem.js';\nimport { formatAbiItemWithArgs } from '../utils/abi/formatAbiItemWithArgs.js';\nimport { getAbiItem } from '../utils/abi/getAbiItem.js';\nimport { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { AbiErrorSignatureNotFoundError } from './abi.js';\nimport { BaseError } from './base.js';\nimport { prettyPrint } from './transaction.js';\nimport { getContractAddress } from './utils.js';\nexport class CallExecutionError extends BaseError {\n constructor(cause, { account: account_, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const account = account_ ? parseAccount(account_) : undefined;\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Raw Call Arguments:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'CallExecutionError'\n });\n this.cause = cause;\n }\n}\nexport class ContractFunctionExecutionError extends BaseError {\n constructor(cause, { abi, args, contractAddress, docsPath, functionName, sender, }) {\n const abiItem = getAbiItem({ abi, args, name: functionName });\n const formattedArgs = abiItem\n ? formatAbiItemWithArgs({\n abiItem,\n args,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined;\n const functionWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined;\n const prettyArgs = prettyPrint({\n address: contractAddress && getContractAddress(contractAddress),\n function: functionWithParams,\n args: formattedArgs &&\n formattedArgs !== '()' &&\n `${[...Array(functionName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`,\n sender,\n });\n super(cause.shortMessage ||\n `An unknown error occurred while executing the contract function \"${functionName}\".`, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Contract Call:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"abi\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"args\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"contractAddress\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"formattedArgs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"functionName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"sender\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionExecutionError'\n });\n this.abi = abi;\n this.args = args;\n this.cause = cause;\n this.contractAddress = contractAddress;\n this.functionName = functionName;\n this.sender = sender;\n }\n}\nexport class ContractFunctionRevertedError extends BaseError {\n constructor({ abi, data, functionName, message, }) {\n let cause;\n let decodedData = undefined;\n let metaMessages;\n let reason;\n if (data && data !== '0x') {\n try {\n decodedData = decodeErrorResult({ abi, data });\n const { abiItem, errorName, args: errorArgs } = decodedData;\n if (errorName === 'Error') {\n reason = errorArgs[0];\n }\n else if (errorName === 'Panic') {\n const [firstArg] = errorArgs;\n reason = panicReasons[firstArg];\n }\n else {\n const errorWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined;\n const formattedArgs = abiItem && errorArgs\n ? formatAbiItemWithArgs({\n abiItem,\n args: errorArgs,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined;\n metaMessages = [\n errorWithParams ? `Error: ${errorWithParams}` : '',\n formattedArgs && formattedArgs !== '()'\n ? ` ${[...Array(errorName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`\n : '',\n ];\n }\n }\n catch (err) {\n cause = err;\n }\n }\n else if (message)\n reason = message;\n let signature;\n if (cause instanceof AbiErrorSignatureNotFoundError) {\n signature = cause.signature;\n metaMessages = [\n `Unable to decode signature \"${signature}\" as it was not found on the provided ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ];\n }\n super((reason && reason !== 'execution reverted') || signature\n ? [\n `The contract function \"${functionName}\" reverted with the following ${signature ? 'signature' : 'reason'}:`,\n reason || signature,\n ].join('\\n')\n : `The contract function \"${functionName}\" reverted.`, {\n cause,\n metaMessages,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionRevertedError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"reason\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = decodedData;\n this.reason = reason;\n this.signature = signature;\n }\n}\nexport class ContractFunctionZeroDataError extends BaseError {\n constructor({ functionName }) {\n super(`The contract function \"${functionName}\" returned no data (\"0x\").`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ` - The contract does not have the function \"${functionName}\",`,\n ' - The parameters passed to the contract function may be invalid, or',\n ' - The address is not a contract.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionZeroDataError'\n });\n }\n}\nexport class RawContractError extends BaseError {\n constructor({ data, message, }) {\n super(message || '');\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RawContractError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n }\n}\n//# sourceMappingURL=contract.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class HttpRequestError extends BaseError {\n constructor({ body, details, headers, status, url, }) {\n super('HTTP request failed.', {\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'HttpRequestError'\n });\n Object.defineProperty(this, \"body\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"headers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.body = body;\n this.headers = headers;\n this.status = status;\n this.url = url;\n }\n}\nexport class WebSocketRequestError extends BaseError {\n constructor({ body, details, url, }) {\n super('WebSocket request failed.', {\n details,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WebSocketRequestError'\n });\n }\n}\nexport class RpcRequestError extends BaseError {\n constructor({ body, error, url, }) {\n super('RPC Request failed.', {\n cause: error,\n details: error.message,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RpcRequestError'\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.code = error.code;\n }\n}\nexport class TimeoutError extends BaseError {\n constructor({ body, url, }) {\n super('The request took too long to respond.', {\n details: 'The request timed out.',\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TimeoutError'\n });\n }\n}\n//# sourceMappingURL=request.js.map","import { BaseError } from './base.js';\nimport { RpcRequestError } from './request.js';\nconst unknownErrorCode = -1;\nexport class RpcError extends BaseError {\n constructor(cause, { code, docsPath, metaMessages, shortMessage }) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages: metaMessages || cause?.metaMessages,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RpcError'\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = cause.name;\n this.code = (cause instanceof RpcRequestError ? cause.code : code ?? unknownErrorCode);\n }\n}\nexport class ProviderRpcError extends RpcError {\n constructor(cause, options) {\n super(cause, options);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderRpcError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = options.data;\n }\n}\nclass ParseRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ParseRpcError.code,\n shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ParseRpcError'\n });\n }\n}\nObject.defineProperty(ParseRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32700\n});\nexport { ParseRpcError };\nclass InvalidRequestRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidRequestRpcError.code,\n shortMessage: 'JSON is not a valid request object.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidRequestRpcError'\n });\n }\n}\nObject.defineProperty(InvalidRequestRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32600\n});\nexport { InvalidRequestRpcError };\nclass MethodNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n shortMessage: 'The method does not exist / is not available.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MethodNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(MethodNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32601\n});\nexport { MethodNotFoundRpcError };\nclass InvalidParamsRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidParamsRpcError.code,\n shortMessage: [\n 'Invalid parameters were provided to the RPC method.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParamsRpcError'\n });\n }\n}\nObject.defineProperty(InvalidParamsRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32602\n});\nexport { InvalidParamsRpcError };\nclass InternalRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InternalRpcError.code,\n shortMessage: 'An internal error was received.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InternalRpcError'\n });\n }\n}\nObject.defineProperty(InternalRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32603\n});\nexport { InternalRpcError };\nclass InvalidInputRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidInputRpcError.code,\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidInputRpcError'\n });\n }\n}\nObject.defineProperty(InvalidInputRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32000\n});\nexport { InvalidInputRpcError };\nclass ResourceNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceNotFoundRpcError.code,\n shortMessage: 'Requested resource not found.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(ResourceNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32001\n});\nexport { ResourceNotFoundRpcError };\nclass ResourceUnavailableRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceUnavailableRpcError.code,\n shortMessage: 'Requested resource not available.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceUnavailableRpcError'\n });\n }\n}\nObject.defineProperty(ResourceUnavailableRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32002\n});\nexport { ResourceUnavailableRpcError };\nclass TransactionRejectedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: TransactionRejectedRpcError.code,\n shortMessage: 'Transaction creation failed.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionRejectedRpcError'\n });\n }\n}\nObject.defineProperty(TransactionRejectedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32003\n});\nexport { TransactionRejectedRpcError };\nclass MethodNotSupportedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n shortMessage: 'Method is not implemented.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MethodNotSupportedRpcError'\n });\n }\n}\nObject.defineProperty(MethodNotSupportedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32004\n});\nexport { MethodNotSupportedRpcError };\nclass LimitExceededRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: LimitExceededRpcError.code,\n shortMessage: 'Request exceeds defined limit.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'LimitExceededRpcError'\n });\n }\n}\nObject.defineProperty(LimitExceededRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32005\n});\nexport { LimitExceededRpcError };\nclass JsonRpcVersionUnsupportedError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: JsonRpcVersionUnsupportedError.code,\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'JsonRpcVersionUnsupportedError'\n });\n }\n}\nObject.defineProperty(JsonRpcVersionUnsupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32006\n});\nexport { JsonRpcVersionUnsupportedError };\nclass UserRejectedRequestError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UserRejectedRequestError.code,\n shortMessage: 'User rejected the request.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UserRejectedRequestError'\n });\n }\n}\nObject.defineProperty(UserRejectedRequestError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4001\n});\nexport { UserRejectedRequestError };\nclass UnauthorizedProviderError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnauthorizedProviderError.code,\n shortMessage: 'The requested method and/or account has not been authorized by the user.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnauthorizedProviderError'\n });\n }\n}\nObject.defineProperty(UnauthorizedProviderError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4100\n});\nexport { UnauthorizedProviderError };\nclass UnsupportedProviderMethodError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n shortMessage: 'The Provider does not support the requested method.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnsupportedProviderMethodError'\n });\n }\n}\nObject.defineProperty(UnsupportedProviderMethodError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4200\n});\nexport { UnsupportedProviderMethodError };\nclass ProviderDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ProviderDisconnectedError.code,\n shortMessage: 'The Provider is disconnected from all chains.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderDisconnectedError'\n });\n }\n}\nObject.defineProperty(ProviderDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4900\n});\nexport { ProviderDisconnectedError };\nclass ChainDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ChainDisconnectedError.code,\n shortMessage: 'The Provider is not connected to the requested chain.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainDisconnectedError'\n });\n }\n}\nObject.defineProperty(ChainDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4901\n});\nexport { ChainDisconnectedError };\nclass SwitchChainError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: SwitchChainError.code,\n shortMessage: 'An error occurred when attempting to switch chain.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SwitchChainError'\n });\n }\n}\nObject.defineProperty(SwitchChainError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4902\n});\nexport { SwitchChainError };\nexport class UnknownRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n shortMessage: 'An unknown RPC error occurred.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownRpcError'\n });\n }\n}\n//# sourceMappingURL=rpc.js.map","import { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, RawContractError, } from '../../errors/contract.js';\nimport { InternalRpcError } from '../../errors/rpc.js';\nconst EXECUTION_REVERTED_ERROR_CODE = 3;\nexport function getContractError(err, { abi, address, args, docsPath, functionName, sender, }) {\n const { code, data, message, shortMessage } = (err instanceof RawContractError\n ? err\n : err instanceof BaseError\n ? err.walk((err) => 'data' in err) || err.walk()\n : {});\n const cause = (() => {\n if (err instanceof AbiDecodingZeroDataError)\n return new ContractFunctionZeroDataError({ functionName });\n if ([EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&\n (data || message || shortMessage)) {\n return new ContractFunctionRevertedError({\n abi,\n data: typeof data === 'object' ? data.data : data,\n functionName,\n message: shortMessage ?? message,\n });\n }\n return err;\n })();\n return new ContractFunctionExecutionError(cause, {\n abi,\n args,\n contractAddress: address,\n docsPath,\n functionName,\n sender,\n });\n}\n//# sourceMappingURL=getContractError.js.map","import { BaseError } from './base.js';\nexport class AccountNotFoundError extends BaseError {\n constructor({ docsPath } = {}) {\n super([\n 'Could not find an Account to execute with this Action.',\n 'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the WalletClient.',\n ].join('\\n'), {\n docsPath,\n docsSlug: 'account',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AccountNotFoundError'\n });\n }\n}\n//# sourceMappingURL=account.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nimport { prettyPrint } from './transaction.js';\nexport class EstimateGasExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Estimate Gas Arguments:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EstimateGasExecutionError'\n });\n this.cause = cause;\n }\n}\n//# sourceMappingURL=estimateGas.js.map","import { BaseError } from '../../errors/base.js';\nimport { ExecutionRevertedError, FeeCapTooHighError, FeeCapTooLowError, InsufficientFundsError, IntrinsicGasTooHighError, IntrinsicGasTooLowError, NonceMaxValueError, NonceTooHighError, NonceTooLowError, TipAboveFeeCapError, TransactionTypeNotSupportedError, UnknownNodeError, } from '../../errors/node.js';\nimport { RpcRequestError } from '../../errors/request.js';\nimport { InvalidInputRpcError, TransactionRejectedRpcError, } from '../../errors/rpc.js';\nexport function containsNodeError(err) {\n return (err instanceof TransactionRejectedRpcError ||\n err instanceof InvalidInputRpcError ||\n (err instanceof RpcRequestError && err.code === ExecutionRevertedError.code));\n}\nexport function getNodeError(err, args) {\n const message = (err.details || '').toLowerCase();\n const executionRevertedError = err.walk((e) => e.code === ExecutionRevertedError.code);\n if (executionRevertedError instanceof BaseError) {\n return new ExecutionRevertedError({\n cause: err,\n message: executionRevertedError.details,\n });\n }\n if (ExecutionRevertedError.nodeMessage.test(message))\n return new ExecutionRevertedError({\n cause: err,\n message: err.details,\n });\n if (FeeCapTooHighError.nodeMessage.test(message))\n return new FeeCapTooHighError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n });\n if (FeeCapTooLowError.nodeMessage.test(message))\n return new FeeCapTooLowError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n });\n if (NonceTooHighError.nodeMessage.test(message))\n return new NonceTooHighError({ cause: err, nonce: args?.nonce });\n if (NonceTooLowError.nodeMessage.test(message))\n return new NonceTooLowError({ cause: err, nonce: args?.nonce });\n if (NonceMaxValueError.nodeMessage.test(message))\n return new NonceMaxValueError({ cause: err, nonce: args?.nonce });\n if (InsufficientFundsError.nodeMessage.test(message))\n return new InsufficientFundsError({ cause: err });\n if (IntrinsicGasTooHighError.nodeMessage.test(message))\n return new IntrinsicGasTooHighError({ cause: err, gas: args?.gas });\n if (IntrinsicGasTooLowError.nodeMessage.test(message))\n return new IntrinsicGasTooLowError({ cause: err, gas: args?.gas });\n if (TransactionTypeNotSupportedError.nodeMessage.test(message))\n return new TransactionTypeNotSupportedError({ cause: err });\n if (TipAboveFeeCapError.nodeMessage.test(message))\n return new TipAboveFeeCapError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n maxPriorityFeePerGas: args?.maxPriorityFeePerGas,\n });\n return new UnknownNodeError({\n cause: err,\n });\n}\n//# sourceMappingURL=getNodeError.js.map","import { EstimateGasExecutionError, } from '../../errors/estimateGas.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getEstimateGasError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new EstimateGasExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getEstimateGasError.js.map","/**\n * @description Picks out the keys from `value` that exist in the formatter..\n */\nexport function extract(value_, { format }) {\n if (!format)\n return {};\n const value = {};\n function extract_(formatted) {\n const keys = Object.keys(formatted);\n for (const key of keys) {\n if (key in value_)\n value[key] = value_[key];\n if (formatted[key] &&\n typeof formatted[key] === 'object' &&\n !Array.isArray(formatted[key]))\n extract_(formatted[key]);\n }\n }\n const formatted = format(value_ || {});\n extract_(formatted);\n return value;\n}\n//# sourceMappingURL=extract.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { FeeConflictError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function assertRequest(args) {\n const { account: account_, gasPrice, maxFeePerGas, maxPriorityFeePerGas, to, } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (account && !isAddress(account.address))\n throw new InvalidAddressError({ address: account.address });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof gasPrice !== 'undefined' &&\n (typeof maxFeePerGas !== 'undefined' ||\n typeof maxPriorityFeePerGas !== 'undefined'))\n throw new FeeConflictError();\n if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\n//# sourceMappingURL=assertRequest.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class BaseFeeScalarError extends BaseError {\n constructor() {\n super('`baseFeeMultiplier` must be greater than 1.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseFeeScalarError'\n });\n }\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n constructor() {\n super('Chain does not support EIP-1559 fees.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Eip1559FeesNotSupportedError'\n });\n }\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n constructor({ maxPriorityFeePerGas }) {\n super(`\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(maxPriorityFeePerGas)} gwei).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MaxFeePerGasTooLowError'\n });\n }\n}\n//# sourceMappingURL=fee.js.map","import { BaseError } from './base.js';\nexport class BlockNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, }) {\n let identifier = 'Block';\n if (blockHash)\n identifier = `Block at hash \"${blockHash}\"`;\n if (blockNumber)\n identifier = `Block at number \"${blockNumber}\"`;\n super(`${identifier} could not be found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BlockNotFoundError'\n });\n }\n}\n//# sourceMappingURL=block.js.map","import { BlockNotFoundError, } from '../../errors/block.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/fetching-blocks\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockParameters}\n * @returns Information about the block. {@link GetBlockReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlock } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getBlock(client)\n */\nexport async function getBlock(client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, } = {}) {\n const blockTag = blockTag_ ?? 'latest';\n const includeTransactions = includeTransactions_ ?? false;\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let block = null;\n if (blockHash) {\n block = await client.request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n });\n }\n else {\n block = await client.request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n });\n }\n if (!block)\n throw new BlockNotFoundError({ blockHash, blockNumber });\n const format = client.chain?.formatters?.block?.format || formatBlock;\n return format(block);\n}\n//# sourceMappingURL=getBlock.js.map","/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice.html\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\n * @param client - Client to use\n * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getGasPrice } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasPrice = await getGasPrice(client)\n */\nexport async function getGasPrice(client) {\n const gasPrice = await client.request({\n method: 'eth_gasPrice',\n });\n return BigInt(gasPrice);\n}\n//# sourceMappingURL=getGasPrice.js.map","import { Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { hexToBigInt, } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the max priority fee per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.defaultPriorityFee`](/docs/clients/chains.html#fees-defaultpriorityfee) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas.html\n *\n * @param client - Client to use\n * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateMaxPriorityFeePerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateMaxPriorityFeePerGas(client)\n * // 10000000n\n */\nexport async function estimateMaxPriorityFeePerGas(client, args) {\n return internal_estimateMaxPriorityFeePerGas(client, args);\n}\nexport async function internal_estimateMaxPriorityFeePerGas(client, args) {\n const { block: block_, chain = client.chain, request } = args || {};\n if (typeof chain?.fees?.defaultPriorityFee === 'function') {\n const block = block_ || (await getAction(client, getBlock, 'getBlock')({}));\n return chain.fees.defaultPriorityFee({\n block,\n client,\n request,\n });\n }\n if (typeof chain?.fees?.defaultPriorityFee !== 'undefined')\n return chain?.fees?.defaultPriorityFee;\n try {\n const maxPriorityFeePerGasHex = await client.request({\n method: 'eth_maxPriorityFeePerGas',\n });\n return hexToBigInt(maxPriorityFeePerGasHex);\n }\n catch {\n // If the RPC Provider does not support `eth_maxPriorityFeePerGas`\n // fall back to calculating it manually via `gasPrice - baseFeePerGas`.\n // See: https://github.com/ethereum/pm/issues/328#:~:text=eth_maxPriorityFeePerGas%20after%20London%20will%20effectively%20return%20eth_gasPrice%20%2D%20baseFee\n const [block, gasPrice] = await Promise.all([\n block_\n ? Promise.resolve(block_)\n : getAction(client, getBlock, 'getBlock')({}),\n getAction(client, getGasPrice, 'getGasPrice')({}),\n ]);\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = gasPrice - block.baseFeePerGas;\n if (maxPriorityFeePerGas < 0n)\n return 0n;\n return maxPriorityFeePerGas;\n }\n}\n//# sourceMappingURL=estimateMaxPriorityFeePerGas.js.map","import { BaseFeeScalarError, Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { internal_estimateMaxPriorityFeePerGas, } from './estimateMaxPriorityFeePerGas.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the fees per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.estimateFeesPerGas`](/docs/clients/chains.html#fees-estimatefeespergas) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas.html\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateFeesPerGasParameters}\n * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateFeesPerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateFeesPerGas(client)\n * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n */\nexport async function estimateFeesPerGas(client, args) {\n return internal_estimateFeesPerGas(client, args);\n}\nexport async function internal_estimateFeesPerGas(client, args) {\n const { block: block_, chain = client.chain, request, type = 'eip1559', } = args || {};\n const baseFeeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function')\n return chain.fees.baseFeeMultiplier({\n block: block_,\n client,\n request,\n });\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (baseFeeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = baseFeeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiply = (base) => (base * BigInt(Math.ceil(baseFeeMultiplier * denominator))) /\n BigInt(denominator);\n const block = block_\n ? block_\n : await getAction(client, getBlock, 'getBlock')({});\n if (typeof chain?.fees?.estimateFeesPerGas === 'function')\n return chain.fees.estimateFeesPerGas({\n block: block_,\n client,\n multiply,\n request,\n type,\n });\n if (type === 'eip1559') {\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = request?.maxPriorityFeePerGas\n ? request.maxPriorityFeePerGas\n : await internal_estimateMaxPriorityFeePerGas(client, {\n block,\n chain,\n request,\n });\n const baseFeePerGas = multiply(block.baseFeePerGas);\n const maxFeePerGas = request?.maxFeePerGas ?? baseFeePerGas + maxPriorityFeePerGas;\n return {\n maxFeePerGas,\n maxPriorityFeePerGas,\n };\n }\n const gasPrice = request?.gasPrice ??\n multiply(await getAction(client, getGasPrice, 'getGasPrice')({}));\n return {\n gasPrice,\n };\n}\n//# sourceMappingURL=estimateFeesPerGas.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms.html#transaction) an Account has broadcast / sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount.html\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount(client, { address, blockTag = 'latest', blockNumber }) {\n const count = await client.request({\n method: 'eth_getTransactionCount',\n params: [address, blockNumber ? numberToHex(blockNumber) : blockTag],\n });\n return hexToNumber(count);\n}\n//# sourceMappingURL=getTransactionCount.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined')\n return 'eip1559';\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { internal_estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { Eip1559FeesNotSupportedError, MaxFeePerGasTooLowError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\nimport { getTransactionType } from '../../utils/transaction/getTransactionType.js';\n/**\n * Prepares a transaction request for signing.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest.html\n *\n * @param args - {@link PrepareTransactionRequestParameters}\n * @returns The transaction request. {@link PrepareTransactionRequestReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function prepareTransactionRequest(client, args) {\n const { account: account_ = client.account, chain, gas, nonce, type } = args;\n if (!account_)\n throw new AccountNotFoundError();\n const account = parseAccount(account_);\n const block = await getAction(client, getBlock, 'getBlock')({ blockTag: 'latest' });\n const request = { ...args, from: account.address };\n if (typeof nonce === 'undefined')\n request.nonce = await getAction(client, getTransactionCount, 'getTransactionCount')({\n address: account.address,\n blockTag: 'pending',\n });\n if (typeof type === 'undefined') {\n try {\n request.type = getTransactionType(request);\n }\n catch {\n // infer type from block\n request.type =\n typeof block.baseFeePerGas === 'bigint' ? 'eip1559' : 'legacy';\n }\n }\n if (request.type === 'eip1559') {\n // EIP-1559 fees\n const { maxFeePerGas, maxPriorityFeePerGas } = await internal_estimateFeesPerGas(client, {\n block,\n chain,\n request: request,\n });\n if (typeof args.maxPriorityFeePerGas === 'undefined' &&\n args.maxFeePerGas &&\n args.maxFeePerGas < maxPriorityFeePerGas)\n throw new MaxFeePerGasTooLowError({\n maxPriorityFeePerGas,\n });\n request.maxPriorityFeePerGas = maxPriorityFeePerGas;\n request.maxFeePerGas = maxFeePerGas;\n }\n else {\n // Legacy fees\n if (typeof args.maxFeePerGas !== 'undefined' ||\n typeof args.maxPriorityFeePerGas !== 'undefined')\n throw new Eip1559FeesNotSupportedError();\n const { gasPrice: gasPrice_ } = await internal_estimateFeesPerGas(client, {\n block,\n chain,\n request: request,\n type: 'legacy',\n });\n request.gasPrice = gasPrice_;\n }\n if (typeof gas === 'undefined')\n request.gas = await getAction(client, estimateGas, 'estimateGas')({\n ...request,\n account: { address: account.address, type: 'json-rpc' },\n });\n assertRequest(request);\n return request;\n}\n//# sourceMappingURL=prepareTransactionRequest.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getEstimateGasError, } from '../../utils/errors/getEstimateGasError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { prepareTransactionRequest, } from '../wallet/prepareTransactionRequest.js';\n/**\n * Estimates the gas necessary to complete a transaction without submitting it to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateGas.html\n * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateGas } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasEstimate = await estimateGas(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * })\n */\nexport async function estimateGas(client, args) {\n const account_ = args.account ?? client.account;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/public/estimateGas',\n });\n const account = parseAccount(account_);\n try {\n const { accessList, blockNumber, blockTag, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = account.type === 'local'\n ? (await prepareTransactionRequest(client, args))\n : args;\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n assertRequest(args);\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account.address,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n const balance = await client.request({\n method: 'eth_estimateGas',\n params: block ? [request, block] : [request],\n });\n return BigInt(balance);\n }\n catch (err) {\n throw getEstimateGasError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=estimateGas.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { estimateGas, } from './estimateGas.js';\n/**\n * Estimates the gas required to successfully execute a contract write function call.\n *\n * - Docs: https://viem.sh/docs/contract/estimateContractGas.html\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateContractGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateContractGas } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gas = await estimateContractGas(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * functionName: 'mint',\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\nexport async function estimateContractGas(client, { abi, address, args, functionName, ...request }) {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const gas = await getAction(client, estimateGas, 'estimateGas')({\n data,\n to: address,\n ...request,\n });\n return gas;\n }\n catch (err) {\n const account = request.account ? parseAccount(request.account) : undefined;\n throw getContractError(err, {\n abi: abi,\n address,\n args,\n docsPath: '/docs/contract/estimateContractGas',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=estimateContractGas.js.map","import { AbiDecodingDataSizeTooSmallError, AbiEventSignatureEmptyTopicsError, AbiEventSignatureNotFoundError, DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { getEventSelector, } from '../hash/getEventSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nconst docsPath = '/docs/contract/decodeEventLog';\nexport function decodeEventLog({ abi, data, strict: strict_, topics, }) {\n const strict = strict_ ?? true;\n const [signature, ...argTopics] = topics;\n if (!signature)\n throw new AbiEventSignatureEmptyTopicsError({\n docsPath,\n });\n const abiItem = abi.find((x) => x.type === 'event' &&\n signature === getEventSelector(formatAbiItem(x)));\n if (!(abiItem && 'name' in abiItem) || abiItem.type !== 'event')\n throw new AbiEventSignatureNotFoundError(signature, {\n docsPath,\n });\n const { name, inputs } = abiItem;\n const isUnnamed = inputs?.some((x) => !('name' in x && x.name));\n let args = isUnnamed ? [] : {};\n // Decode topics (indexed args).\n const indexedInputs = inputs.filter((x) => 'indexed' in x && x.indexed);\n for (let i = 0; i < indexedInputs.length; i++) {\n const param = indexedInputs[i];\n const topic = argTopics[i];\n if (!topic)\n throw new DecodeLogTopicsMismatch({\n abiItem,\n param: param,\n });\n args[param.name || i] = decodeTopic({ param, value: topic });\n }\n // Decode data (non-indexed args).\n const nonIndexedInputs = inputs.filter((x) => !('indexed' in x && x.indexed));\n if (nonIndexedInputs.length > 0) {\n if (data && data !== '0x') {\n try {\n const decodedData = decodeAbiParameters(nonIndexedInputs, data);\n if (decodedData) {\n if (isUnnamed)\n args = [...args, ...decodedData];\n else {\n for (let i = 0; i < nonIndexedInputs.length; i++) {\n args[nonIndexedInputs[i].name] = decodedData[i];\n }\n }\n }\n }\n catch (err) {\n if (strict) {\n if (err instanceof AbiDecodingDataSizeTooSmallError)\n throw new DecodeLogDataMismatch({\n abiItem,\n data: err.data,\n params: err.params,\n size: err.size,\n });\n throw err;\n }\n }\n }\n else if (strict) {\n throw new DecodeLogDataMismatch({\n abiItem,\n data: '0x',\n params: nonIndexedInputs,\n size: 0,\n });\n }\n }\n return {\n eventName: name,\n args: Object.values(args).length > 0 ? args : undefined,\n };\n}\nfunction decodeTopic({ param, value }) {\n if (param.type === 'string' ||\n param.type === 'bytes' ||\n param.type === 'tuple' ||\n param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n return value;\n const decodedArg = decodeAbiParameters([param], value) || [];\n return decodedArg[0];\n}\n//# sourceMappingURL=decodeEventLog.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { decodeEventLog, } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/filters-and-logs/event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs(client, { address, blockHash, fromBlock, toBlock, event, events: events_, args, strict: strict_, } = {}) {\n const strict = strict_ ?? false;\n const events = events_ ?? (event ? [event] : undefined);\n let topics = [];\n if (events) {\n topics = [\n events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n })),\n ];\n if (event)\n topics = topics[0];\n }\n let logs;\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n });\n }\n else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n });\n }\n return logs\n .map((log) => {\n try {\n const { eventName, args } = events\n ? decodeEventLog({\n abi: events,\n data: log.data,\n topics: log.topics,\n strict,\n })\n : { eventName: undefined, args: undefined };\n return formatLog(log, { args, eventName: eventName });\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return formatLog(log, { args: isUnnamed ? [] : {}, eventName });\n }\n })\n .filter(Boolean);\n}\n//# sourceMappingURL=getLogs.js.map","import { getAbiItem, } from '../../utils/abi/getAbiItem.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getLogs, } from './getLogs.js';\n/**\n * Returns a list of event logs emitted by a contract.\n *\n * - Docs: https://viem.sh/docs/actions/public/getContractEvents.html\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetContractEventsParameters}\n * @returns A list of event logs. {@link GetContractEventsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getContractEvents } from 'viem/public'\n * import { wagmiAbi } from './abi'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getContractEvents(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: wagmiAbi,\n * eventName: 'Transfer'\n * })\n */\nexport async function getContractEvents(client, { abi, address, args, blockHash, eventName, fromBlock, toBlock, strict, }) {\n const event = eventName\n ? getAbiItem({ abi, name: eventName })\n : undefined;\n const events = !event\n ? abi.filter((x) => x.type === 'event')\n : undefined;\n return getAction(client, getLogs, 'getLogs')({\n address,\n args,\n blockHash,\n event,\n events,\n fromBlock,\n toBlock,\n strict,\n });\n}\n//# sourceMappingURL=getContractEvents.js.map","import { AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, } from '../../errors/abi.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { getAbiItem, } from './getAbiItem.js';\nconst docsPath = '/docs/contract/decodeFunctionResult';\nexport function decodeFunctionResult({ abi, args, functionName, data, }) {\n let abiItem = abi[0];\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!abiItem)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });\n const values = decodeAbiParameters(abiItem.outputs, data);\n if (values && values.length > 1)\n return values;\n if (values && values.length === 1)\n return values[0];\n return undefined;\n}\n//# sourceMappingURL=decodeFunctionResult.js.map","/* [Multicall3](https://github.com/mds1/multicall) */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n {\n name: 'target',\n type: 'address',\n },\n {\n name: 'allowFailure',\n type: 'bool',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'aggregate3',\n outputs: [\n {\n components: [\n {\n name: 'success',\n type: 'bool',\n },\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'returnData',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nconst universalResolverErrors = [\n {\n inputs: [],\n name: 'ResolverNotFound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ResolverWildcardNotSupported',\n type: 'error',\n },\n];\nexport const universalResolverResolveAbi = [\n ...universalResolverErrors,\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n];\nexport const universalResolverReverseAbi = [\n ...universalResolverErrors,\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n];\nexport const textResolverAbi = [\n {\n name: 'text',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'key', type: 'string' },\n ],\n outputs: [{ name: '', type: 'string' }],\n },\n];\nexport const addressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'coinType', type: 'uint256' },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n },\n];\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\nexport const smartAccountAbi = [\n {\n name: 'isValidSignature',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bytes4' }],\n },\n];\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_signer',\n type: 'address',\n },\n {\n internalType: 'bytes32',\n name: '_hash',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n];\n//# sourceMappingURL=abis.js.map","export const aggregate3Signature = '0x82ad56cb';\n//# sourceMappingURL=contract.js.map","import { ChainDoesNotSupportContract, } from '../../errors/chain.js';\nexport function getChainContractAddress({ blockNumber, chain, contract: name, }) {\n const contract = chain?.contracts?.[name];\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain,\n contract: { name },\n });\n if (blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber)\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain,\n contract: {\n name,\n blockCreated: contract.blockCreated,\n },\n });\n return contract.address;\n}\n//# sourceMappingURL=getChainContractAddress.js.map","import { CallExecutionError, } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getCallError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new CallExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getCallError.js.map","const schedulerCache = /*#__PURE__*/ new Map();\nexport function createBatchScheduler({ fn, id, shouldSplitBatch, wait = 0, sort, }) {\n const exec = async () => {\n const scheduler = getScheduler();\n flush();\n const args = scheduler.map(({ args }) => args);\n if (args.length === 0)\n return;\n fn(args)\n .then((data) => {\n if (sort && Array.isArray(data))\n data.sort(sort);\n for (let i = 0; i < scheduler.length; i++) {\n const { pendingPromise } = scheduler[i];\n pendingPromise.resolve?.([data[i], data]);\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { pendingPromise } = scheduler[i];\n pendingPromise.reject?.(err);\n }\n });\n };\n const flush = () => schedulerCache.delete(id);\n const getBatchedArgs = () => getScheduler().map(({ args }) => args);\n const getScheduler = () => schedulerCache.get(id) || [];\n const setScheduler = (item) => schedulerCache.set(id, [...getScheduler(), item]);\n return {\n flush,\n async schedule(args) {\n const pendingPromise = {};\n const promise = new Promise((resolve, reject) => {\n pendingPromise.resolve = resolve;\n pendingPromise.reject = reject;\n });\n const split = shouldSplitBatch?.([...getBatchedArgs(), args]);\n if (split)\n exec();\n const hasActiveScheduler = getScheduler().length > 0;\n if (hasActiveScheduler) {\n setScheduler({ args, pendingPromise });\n return promise;\n }\n setScheduler({ args, pendingPromise });\n setTimeout(exec, wait);\n return promise;\n },\n };\n}\n//# sourceMappingURL=createBatchScheduler.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { multicall3Abi } from '../../constants/abis.js';\nimport { aggregate3Signature } from '../../constants/contract.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ChainDoesNotSupportContract, ClientChainNotConfiguredError, } from '../../errors/chain.js';\nimport { RawContractError, } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { createBatchScheduler, } from '../../utils/promise/createBatchScheduler.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Executes a new message call immediately without submitting a transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/call.html\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param client - Client to use\n * @param parameters - {@link CallParameters}\n * @returns The call data. {@link CallReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { call } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await call(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function call(client, args) {\n const { account: account_ = client.account, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = 'latest', accessList, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n assertRequest(args);\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account?.address,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n if (batch && shouldPerformMulticall({ request })) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n });\n }\n catch (err) {\n if (!(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract))\n throw err;\n }\n }\n const response = await client.request({\n method: 'eth_call',\n params: block\n ? [request, block]\n : [request],\n });\n if (response === '0x')\n return { data: undefined };\n return { data: response };\n }\n catch (err) {\n const data = getRevertErrorData(err);\n const { offchainLookup, offchainLookupSignature } = await import('../../utils/ccip.js');\n if (data?.slice(0, 10) === offchainLookupSignature && to) {\n return { data: await offchainLookup(client, { data, to }) };\n }\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n// We only want to perform a scheduled multicall if:\n// - The request has calldata,\n// - The request has a target address,\n// - The target address is not already the aggregate3 signature,\n// - The request has no other properties (`nonce`, `gas`, etc cannot be sent with a multicall).\nfunction shouldPerformMulticall({ request }) {\n const { data, to, ...request_ } = request;\n if (!data)\n return false;\n if (data.startsWith(aggregate3Signature))\n return false;\n if (!to)\n return false;\n if (Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0)\n return false;\n return true;\n}\nasync function scheduleMulticall(client, args) {\n const { batchSize = 1024, wait = 0 } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const { blockNumber, blockTag = 'latest', data, multicallAddress: multicallAddress_, to, } = args;\n let multicallAddress = multicallAddress_;\n if (!multicallAddress) {\n if (!client.chain)\n throw new ClientChainNotConfiguredError();\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const { schedule } = createBatchScheduler({\n id: `${client.uid}.${block}`,\n wait,\n shouldSplitBatch(args) {\n const size = args.reduce((size, { data }) => size + (data.length - 2), 0);\n return size > batchSize * 2;\n },\n fn: async (requests) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }));\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n });\n const data = await client.request({\n method: 'eth_call',\n params: [\n {\n data: calldata,\n to: multicallAddress,\n },\n block,\n ],\n });\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n });\n },\n });\n const [{ returnData, success }] = await schedule({ data, to });\n if (!success)\n throw new RawContractError({ data: returnData });\n if (returnData === '0x')\n return { data: undefined };\n return { data: returnData };\n}\nexport function getRevertErrorData(err) {\n if (!(err instanceof BaseError))\n return undefined;\n const error = err.walk();\n return typeof error.data === 'object' ? error.data.data : error.data;\n}\n//# sourceMappingURL=call.js.map","import { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/reading-contracts\n *\n * A \"read-only\" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @param client - Client to use\n * @param parameters - {@link ReadContractParameters}\n * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { readContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await readContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // 424122n\n */\nexport async function readContract(client, { abi, address, args, functionName, ...callRequest }) {\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const { data } = await getAction(client, call, 'call')({\n data: calldata,\n to: address,\n ...callRequest,\n });\n return decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n }\n catch (err) {\n throw getContractError(err, {\n abi: abi,\n address,\n args,\n docsPath: '/docs/contract/readContract',\n functionName,\n });\n }\n}\n//# sourceMappingURL=readContract.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n *\n * - Docs: https://viem.sh/docs/contract/simulateContract.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/writing-to-contracts\n *\n * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract.html), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateContractParameters}\n * @returns The simulation result and write request. {@link SimulateContractReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n * functionName: 'mint',\n * args: ['69420'],\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function simulateContract(client, { abi, address, args, dataSuffix, functionName, ...callRequest }) {\n const account = callRequest.account\n ? parseAccount(callRequest.account)\n : undefined;\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const { data } = await getAction(client, call, 'call')({\n batch: false,\n data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...callRequest,\n });\n const result = decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n return {\n result,\n request: {\n abi,\n address,\n args,\n dataSuffix,\n functionName,\n ...callRequest,\n },\n };\n }\n catch (err) {\n throw getContractError(err, {\n abi: abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=simulateContract.js.map","export const listenersCache = /*#__PURE__*/ new Map();\nexport const cleanupCache = /*#__PURE__*/ new Map();\nlet callbackCount = 0;\n/**\n * @description Sets up an observer for a given function. If another function\n * is set up under the same observer id, the function will only be called once\n * for both instances of the observer.\n */\nexport function observe(observerId, callbacks, fn) {\n const callbackId = ++callbackCount;\n const getListeners = () => listenersCache.get(observerId) || [];\n const unsubscribe = () => {\n const listeners = getListeners();\n listenersCache.set(observerId, listeners.filter((cb) => cb.id !== callbackId));\n };\n const unwatch = () => {\n const cleanup = cleanupCache.get(observerId);\n if (getListeners().length === 1 && cleanup)\n cleanup();\n unsubscribe();\n };\n const listeners = getListeners();\n listenersCache.set(observerId, [\n ...listeners,\n { id: callbackId, fns: callbacks },\n ]);\n if (listeners && listeners.length > 0)\n return unwatch;\n const emit = {};\n for (const key in callbacks) {\n emit[key] = ((...args) => {\n const listeners = getListeners();\n if (listeners.length === 0)\n return;\n for (const listener of listeners)\n listener.fns[key]?.(...args);\n });\n }\n const cleanup = fn(emit);\n if (typeof cleanup === 'function')\n cleanupCache.set(observerId, cleanup);\n return unwatch;\n}\n//# sourceMappingURL=observe.js.map","export async function wait(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n//# sourceMappingURL=wait.js.map","import { wait } from './wait.js';\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll(fn, { emitOnBegin, initialWaitTime, interval }) {\n let active = true;\n const unwatch = () => (active = false);\n const watch = async () => {\n let data = undefined;\n if (emitOnBegin)\n data = await fn({ unpoll: unwatch });\n const initialWait = (await initialWaitTime?.(data)) ?? interval;\n await wait(initialWait);\n const poll = async () => {\n if (!active)\n return;\n await fn({ unpoll: unwatch });\n await wait(interval);\n poll();\n };\n poll();\n };\n watch();\n return unwatch;\n}\n//# sourceMappingURL=poll.js.map","export const promiseCache = /*#__PURE__*/ new Map();\nexport const responseCache = /*#__PURE__*/ new Map();\nexport function getCache(cacheKey) {\n const buildCache = (cacheKey, cache) => ({\n clear: () => cache.delete(cacheKey),\n get: () => cache.get(cacheKey),\n set: (data) => cache.set(cacheKey, data),\n });\n const promise = buildCache(cacheKey, promiseCache);\n const response = buildCache(cacheKey, responseCache);\n return {\n clear: () => {\n promise.clear();\n response.clear();\n },\n promise,\n response,\n };\n}\n/**\n * @description Returns the result of a given promise, and caches the result for\n * subsequent invocations against a provided cache key.\n */\nexport async function withCache(fn, { cacheKey, cacheTime = Infinity }) {\n const cache = getCache(cacheKey);\n // If a response exists in the cache, and it's not expired, return it\n // and do not invoke the promise.\n // If the max age is 0, the cache is disabled.\n const response = cache.response.get();\n if (response && cacheTime > 0) {\n const age = new Date().getTime() - response.created.getTime();\n if (age < cacheTime)\n return response.data;\n }\n let promise = cache.promise.get();\n if (!promise) {\n promise = fn();\n // Store the promise in the cache so that subsequent invocations\n // will wait for the same promise to resolve (deduping).\n cache.promise.set(promise);\n }\n try {\n const data = await promise;\n // Store the response in the cache so that subsequent invocations\n // will return the same response.\n cache.response.set({ created: new Date(), data });\n return data;\n }\n finally {\n // Clear the promise cache so that subsequent invocations will\n // invoke the promise again.\n cache.promise.clear();\n }\n}\n//# sourceMappingURL=withCache.js.map","import { getCache, withCache } from '../../utils/promise/withCache.js';\nconst cacheKey = (id) => `blockNumber.${id}`;\nexport function getBlockNumberCache(id) {\n return getCache(cacheKey(id));\n}\n/**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/fetching-blocks\n * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockNumberParameters}\n * @returns The number of the block. {@link GetBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockNumber } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blockNumber = await getBlockNumber(client)\n * // 69420n\n */\nexport async function getBlockNumber(client, { cacheTime = client.cacheTime, maxAge } = {}) {\n const blockNumberHex = await withCache(() => client.request({\n method: 'eth_blockNumber',\n }), { cacheKey: cacheKey(client.uid), cacheTime: maxAge ?? cacheTime });\n return BigInt(blockNumberHex);\n}\n//# sourceMappingURL=getBlockNumber.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { decodeEventLog, } from '../../utils/abi/decodeEventLog.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterChanges.html\n * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n *\n * A Filter can be created from the following actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter.html)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter.html)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)\n *\n * Depending on the type of filter, the return value will be different:\n *\n * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.\n * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.\n * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterChangesParameters}\n * @returns Logs or hashes. {@link GetFilterChangesReturnType}\n *\n * @example\n * // Blocks\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n *\n * @example\n * // Contract Events\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * eventName: 'Transfer',\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Raw Events\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Transactions\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n */\nexport async function getFilterChanges(_client, { filter, }) {\n const strict = 'strict' in filter && filter.strict;\n const logs = await filter.request({\n method: 'eth_getFilterChanges',\n params: [filter.id],\n });\n return logs\n .map((log) => {\n if (typeof log === 'string')\n return log;\n try {\n const { eventName, args } = 'abi' in filter && filter.abi\n ? decodeEventLog({\n abi: filter.abi,\n data: log.data,\n topics: log.topics,\n strict,\n })\n : { eventName: undefined, args: undefined };\n return formatLog(log, { args, eventName });\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if ('strict' in filter && filter.strict)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args undefined if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return formatLog(log, { args: isUnnamed ? [] : {}, eventName });\n }\n })\n .filter(Boolean);\n}\n//# sourceMappingURL=getFilterChanges.js.map","/**\n * Destroys a [`Filter`](https://viem.sh/docs/glossary/types.html#filter).\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter.html\n * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n *\n * Destroys a Filter that was created from one of the following Actions:\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter.html)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)\n *\n * @param client - Client to use\n * @param parameters - {@link UninstallFilterParameters}\n * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'\n *\n * const filter = await createPendingTransactionFilter(client)\n * const uninstalled = await uninstallFilter(client, { filter })\n * // true\n */\nexport async function uninstallFilter(_client, { filter }) {\n return filter.request({\n method: 'eth_uninstallFilter',\n params: [filter.id],\n });\n}\n//# sourceMappingURL=uninstallFilter.js.map","import { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { createContractEventFilter, } from './createContractEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getContractEvents, } from './getContractEvents.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent.html\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent.html#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter.html) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchContractEventParameters}\n * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchContractEvent } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchContractEvent(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n * eventName: 'Transfer',\n * args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {\n const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';\n const pollContractEvent = () => {\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n ]);\n const strict = strict_ ?? false;\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n args,\n eventName,\n strict,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getContractEvents, 'getContractEvents')({\n abi,\n address,\n args,\n eventName,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n strict,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitalize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeContractEvent = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const topics = eventName\n ? encodeEventTopics({\n abi: abi,\n eventName: eventName,\n args,\n })\n : [];\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: abi,\n data: log.data,\n topics: log.topics,\n strict: strict_,\n });\n const formatted = formatLog(log, {\n args,\n eventName: eventName,\n });\n onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n onLogs([formatted]);\n }\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return unsubscribe;\n };\n return enablePolling ? pollContractEvent() : subscribeContractEvent();\n}\n//# sourceMappingURL=watchContractEvent.js.map","import { ChainMismatchError, ChainNotFoundError, } from '../../errors/chain.js';\nexport function assertCurrentChain({ chain, currentChainId, }) {\n if (!chain)\n throw new ChainNotFoundError();\n if (currentChainId !== chain.id)\n throw new ChainMismatchError({ chain, currentChainId });\n}\n//# sourceMappingURL=assertCurrentChain.js.map","import { UnknownNodeError } from '../../errors/node.js';\nimport { TransactionExecutionError, } from '../../errors/transaction.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getTransactionError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new TransactionExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getTransactionError.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId.html\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @param client - Client to use\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getChainId } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const chainId = await getChainId(client)\n * // 1\n */\nexport async function getChainId(client) {\n const chainIdHex = await client.request({\n method: 'eth_chainId',\n });\n return hexToNumber(chainIdHex);\n}\n//# sourceMappingURL=getChainId.js.map","/**\n * Sends a **signed** transaction to the network\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction.html\n * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction hash. {@link SendRawTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const hash = await sendRawTransaction(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransaction(client, { serializedTransaction }) {\n return client.request({\n method: 'eth_sendRawTransaction',\n params: [serializedTransaction],\n });\n}\n//# sourceMappingURL=sendRawTransaction.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransaction, } from './sendRawTransaction.js';\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/sending-transactions\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction(client, args) {\n const { account: account_ = client.account, chain = client.chain, accessList, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = args;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n });\n const account = parseAccount(account_);\n try {\n assertRequest(args);\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n if (account.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest,\n });\n if (!chainId)\n chainId = await getAction(client, getChainId, 'getChainId')({});\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction({\n ...request,\n chainId,\n }, { serializer }));\n return await getAction(client, sendRawTransaction, 'sendRawTransaction')({\n serializedTransaction,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n data,\n from: account.address,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n return await client.request({\n method: 'eth_sendTransaction',\n params: [request],\n });\n }\n catch (err) {\n throw getTransactionError(err, {\n ...args,\n account,\n chain: args.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransaction.js.map","import { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/writing-to-contracts\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms.html) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet.html) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract.html#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms.html#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await writeContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n *\n * @example\n * // With Validation\n * import { createWalletClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract, writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const { request } = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * }\n * const hash = await writeContract(client, request)\n */\nexport async function writeContract(client, { abi, address, args, dataSuffix, functionName, ...request }) {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n const hash = await getAction(client, sendTransaction, 'sendTransaction')({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...request,\n });\n return hash;\n}\n//# sourceMappingURL=writeContract.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain.html\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain(client, { chain }) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n });\n}\n//# sourceMappingURL=addChain.js.map","const size = 256;\nlet index = size;\nlet buffer;\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = '';\n index = 0;\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1);\n }\n }\n return buffer.substring(index, index++ + length);\n}\n//# sourceMappingURL=uid.js.map","import { parseAccount } from '../utils/accounts.js';\nimport { uid } from '../utils/uid.js';\nexport function createClient(parameters) {\n const { batch, cacheTime = parameters.pollingInterval ?? 4000, key = 'base', name = 'Base Client', pollingInterval = 4000, type = 'base', } = parameters;\n const chain = parameters.chain;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n const { config, request, value } = parameters.transport({\n chain,\n pollingInterval,\n });\n const transport = { ...config, ...value };\n const client = {\n account,\n batch,\n cacheTime,\n chain,\n key,\n name,\n pollingInterval,\n request,\n transport,\n type,\n uid: uid(),\n };\n function extend(base) {\n return (extendFn) => {\n const extended = extendFn(base);\n for (const key in client)\n delete extended[key];\n const combined = { ...base, ...extended };\n return Object.assign(combined, { extend: extend(combined) });\n };\n }\n return Object.assign(client, { extend: extend(client) });\n}\n//# sourceMappingURL=createClient.js.map","import { wait } from '../wait.js';\nexport function withRetry(fn, { delay: delay_ = 100, retryCount = 2, shouldRetry = () => true, } = {}) {\n return new Promise((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }) => {\n const delay = typeof delay_ === 'function' ? delay_({ count, error }) : delay_;\n if (delay)\n await wait(delay);\n attemptRetry({ count: count + 1 });\n };\n try {\n const data = await fn();\n resolve(data);\n }\n catch (err) {\n if (count < retryCount &&\n (await shouldRetry({ count, error: err })))\n return retry({ error: err });\n reject(err);\n }\n };\n attemptRetry();\n });\n}\n//# sourceMappingURL=withRetry.js.map","import { BaseError } from '../errors/base.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { ChainDisconnectedError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, ParseRpcError, ProviderDisconnectedError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, UnknownRpcError, UnsupportedProviderMethodError, UserRejectedRequestError, } from '../errors/rpc.js';\nimport { withRetry } from './promise/withRetry.js';\nexport const isDeterministicError = (error) => {\n if ('code' in error)\n return (error.code !== -1 &&\n error.code !== -32004 &&\n error.code !== -32005 &&\n error.code !== -32042 &&\n error.code !== -32603);\n if (error instanceof HttpRequestError && error.status)\n return (error.status !== 403 &&\n error.status !== 408 &&\n error.status !== 413 &&\n error.status !== 429 &&\n error.status !== 500 &&\n error.status !== 502 &&\n error.status !== 503 &&\n error.status !== 504);\n return false;\n};\nexport function buildRequest(request, { retryDelay = 150, retryCount = 3, } = {}) {\n return (async (args) => withRetry(async () => {\n try {\n return await request(args);\n }\n catch (err_) {\n const err = err_;\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err);\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err);\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err);\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err);\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err);\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err);\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err);\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err);\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err);\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err);\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err);\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err);\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err);\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err);\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err);\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err);\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err);\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err);\n // CAIP-25: User Rejected Error\n // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n case 5000:\n throw new UserRejectedRequestError(err);\n default:\n if (err_ instanceof BaseError)\n throw err_;\n throw new UnknownRpcError(err);\n }\n }\n }, {\n delay: ({ count, error }) => {\n // If we find a Retry-After header, let's retry after the given time.\n if (error && error instanceof HttpRequestError) {\n const retryAfter = error?.headers?.get('Retry-After');\n if (retryAfter?.match(/\\d/))\n return parseInt(retryAfter) * 1000;\n }\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay;\n },\n retryCount,\n shouldRetry: ({ error }) => !isDeterministicError(error),\n }));\n}\n//# sourceMappingURL=buildRequest.js.map","import { buildRequest } from '../../utils/buildRequest.js';\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport({ key, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {\n return {\n config: { key, name, request, retryCount, retryDelay, timeout, type },\n request: buildRequest(request, { retryCount, retryDelay }),\n value,\n };\n}\n//# sourceMappingURL=createTransport.js.map","import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { isDeterministicError } from '../../utils/buildRequest.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, retryCount, retryDelay, } = config;\n return ({ chain, pollingInterval = 4000, timeout }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0) => {\n const transport = transports[i]({ chain, retryCount: 0, timeout });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n // If the error is deterministic, we don't need to fall back.\n // So throw the error.\n if (isDeterministicError(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n };\n}\nexport function rankTransports({ chain, interval = 4000, onTransports, sampleCount = 10, timeout = 1000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await transport_.request({ method: 'net_listening' });\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import { BaseError } from './base.js';\nexport class UrlRequiredError extends BaseError {\n constructor() {\n super('No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.', {\n docsPath: '/docs/clients/intro',\n });\n }\n}\n//# sourceMappingURL=transport.js.map","export function getNativeWebSocket() {\n if (typeof WebSocket !== \"undefined\")\n return WebSocket;\n if (typeof global.WebSocket !== \"undefined\")\n return global.WebSocket;\n if (typeof window.WebSocket !== \"undefined\")\n return window.WebSocket;\n if (typeof self.WebSocket !== \"undefined\")\n return self.WebSocket;\n throw new Error(\"`WebSocket` is not supported in this environment\");\n}\n//# sourceMappingURL=utils.js.map","import { getNativeWebSocket } from \"./utils.js\";\nexport const WebSocket = getNativeWebSocket();\n//# sourceMappingURL=native.js.map","export function withTimeout(fn, { errorInstance = new Error('timed out'), timeout, signal, }) {\n return new Promise((resolve, reject) => {\n ;\n (async () => {\n let timeoutId;\n try {\n const controller = new AbortController();\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort();\n }\n else {\n reject(errorInstance);\n }\n }, timeout);\n }\n resolve(await fn({ signal: controller?.signal }));\n }\n catch (err) {\n if (err.name === 'AbortError')\n reject(errorInstance);\n reject(err);\n }\n finally {\n clearTimeout(timeoutId);\n }\n })();\n });\n}\n//# sourceMappingURL=withTimeout.js.map","import { WebSocket } from 'isows';\nimport { HttpRequestError, TimeoutError, WebSocketRequestError, } from '../errors/request.js';\nimport { createBatchScheduler, } from './promise/createBatchScheduler.js';\nimport { withTimeout, } from './promise/withTimeout.js';\nimport { stringify } from './stringify.js';\nlet id = 0;\nasync function http(url, { body, fetchOptions = {}, timeout = 10000 }) {\n const { headers, method, signal: signal_ } = fetchOptions;\n try {\n const response = await withTimeout(async ({ signal }) => {\n const response = await fetch(url, {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(body.map((body) => ({\n jsonrpc: '2.0',\n id: body.id ?? id++,\n ...body,\n })))\n : stringify({ jsonrpc: '2.0', id: body.id ?? id++, ...body }),\n headers: {\n ...headers,\n 'Content-Type': 'application/json',\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : undefined),\n });\n return response;\n }, {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n });\n let data;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n data = await response.json();\n }\n else {\n data = await response.text();\n }\n if (!response.ok) {\n throw new HttpRequestError({\n body,\n details: stringify(data.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n }\n return data;\n }\n catch (err) {\n if (err instanceof HttpRequestError)\n throw err;\n if (err instanceof TimeoutError)\n throw err;\n throw new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n}\nexport const socketsCache = /*#__PURE__*/ new Map();\nexport async function getSocket(url) {\n let socket = socketsCache.get(url);\n // If the socket already exists, return it.\n if (socket)\n return socket;\n const { schedule } = createBatchScheduler({\n id: url,\n fn: async () => {\n const webSocket = new WebSocket(url);\n // Set up a cache for incoming \"synchronous\" requests.\n const requests = new Map();\n // Set up a cache for subscriptions (eth_subscribe).\n const subscriptions = new Map();\n const onMessage = ({ data }) => {\n const message = JSON.parse(data);\n const isSubscription = message.method === 'eth_subscription';\n const id = isSubscription ? message.params.subscription : message.id;\n const cache = isSubscription ? subscriptions : requests;\n const callback = cache.get(id);\n if (callback)\n callback({ data });\n if (!isSubscription)\n cache.delete(id);\n };\n const onClose = () => {\n socketsCache.delete(url);\n webSocket.removeEventListener('close', onClose);\n webSocket.removeEventListener('message', onMessage);\n };\n // Setup event listeners for RPC & subscription responses.\n webSocket.addEventListener('close', onClose);\n webSocket.addEventListener('message', onMessage);\n // Wait for the socket to open.\n if (webSocket.readyState === WebSocket.CONNECTING) {\n await new Promise((resolve, reject) => {\n if (!webSocket)\n return;\n webSocket.onopen = resolve;\n webSocket.onerror = reject;\n });\n }\n // Create a new socket instance.\n socket = Object.assign(webSocket, {\n requests,\n subscriptions,\n });\n socketsCache.set(url, socket);\n return [socket];\n },\n });\n const [_, [socket_]] = await schedule();\n return socket_;\n}\nfunction webSocket(socket, { body, onResponse }) {\n if (socket.readyState === socket.CLOSED ||\n socket.readyState === socket.CLOSING)\n throw new WebSocketRequestError({\n body,\n url: socket.url,\n details: 'Socket is closed.',\n });\n const id_ = id++;\n const callback = ({ data }) => {\n const message = JSON.parse(data);\n if (typeof message.id === 'number' && id_ !== message.id)\n return;\n onResponse?.(message);\n // If we are subscribing to a topic, we want to set up a listener for incoming\n // messages.\n if (body.method === 'eth_subscribe' && typeof message.result === 'string') {\n socket.subscriptions.set(message.result, callback);\n }\n // If we are unsubscribing from a topic, we want to remove the listener.\n if (body.method === 'eth_unsubscribe') {\n socket.subscriptions.delete(body.params?.[0]);\n }\n };\n socket.requests.set(id_, callback);\n socket.send(JSON.stringify({ jsonrpc: '2.0', ...body, id: id_ }));\n return socket;\n}\nasync function webSocketAsync(socket, { body, timeout = 10000 }) {\n return withTimeout(() => new Promise((onResponse) => rpc.webSocket(socket, {\n body,\n onResponse,\n })), {\n errorInstance: new TimeoutError({ body, url: socket.url }),\n timeout,\n });\n}\n///////////////////////////////////////////////////\nexport const rpc = {\n http,\n webSocket,\n webSocketAsync,\n};\n//# sourceMappingURL=rpc.js.map","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';\nimport { rpc } from '../../utils/rpc.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { batch, fetchOptions, key = 'http', name = 'HTTP JSON-RPC', retryDelay, } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } = typeof batch === 'object' ? batch : {};\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10000;\n const url_ = url || chain?.rpcUrls.default.http[0];\n if (!url_)\n throw new UrlRequiredError();\n return createTransport({\n key,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const { schedule } = createBatchScheduler({\n id: `${url}`,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize;\n },\n fn: (body) => rpc.http(url_, {\n body,\n fetchOptions,\n timeout,\n }),\n sort: (a, b) => a.id - b.id,\n });\n const fn = async (body) => batch\n ? schedule(body)\n : [await rpc.http(url_, { body, fetchOptions, timeout })];\n const [{ error, result }] = await fn(body);\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n }, {\n fetchOptions,\n url,\n });\n };\n}\n//# sourceMappingURL=http.js.map","import { panicReasons } from '../../constants/solidity.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionRevertedError } from '../../errors/contract.js';\n/*\n * @description Checks if error is a valid null result UniversalResolver error\n */\nexport function isNullUniversalResolverError(err, callType) {\n if (!(err instanceof BaseError))\n return false;\n const cause = err.walk((e) => e instanceof ContractFunctionRevertedError);\n if (!(cause instanceof ContractFunctionRevertedError))\n return false;\n if (cause.data?.errorName === 'ResolverNotFound')\n return true;\n if (cause.data?.errorName === 'ResolverWildcardNotSupported')\n return true;\n // Backwards compatibility for older UniversalResolver contracts\n if (cause.reason?.includes('Wildcard on non-extended resolvers is not supported'))\n return true;\n // No primary name set for address.\n if (callType === 'reverse' && cause.reason === panicReasons[50])\n return true;\n return false;\n}\n//# sourceMappingURL=errors.js.map","import { isHex } from '../data/isHex.js';\nexport function encodedLabelToLabelhash(label) {\n if (label.length !== 66)\n return null;\n if (label.indexOf('[') !== 0)\n return null;\n if (label.indexOf(']') !== 65)\n return null;\n const hash = `0x${label.slice(1, 65)}`;\n if (!isHex(hash))\n return null;\n return hash;\n}\n//# sourceMappingURL=encodedLabelToLabelhash.js.map","import { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * namehash('wevm.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name) {\n let result = new Uint8Array(32).fill(0);\n if (!name)\n return bytesToHex(result);\n const labels = name.split('.');\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashFromEncodedLabel = encodedLabelToLabelhash(labels[i]);\n const hashed = hashFromEncodedLabel\n ? toBytes(hashFromEncodedLabel)\n : keccak256(stringToBytes(labels[i]), 'bytes');\n result = keccak256(concat([result, hashed]), 'bytes');\n }\n return bytesToHex(result);\n}\n//# sourceMappingURL=namehash.js.map","export function encodeLabelhash(hash) {\n return `[${hash.slice(2)}]`;\n}\n//# sourceMappingURL=encodeLabelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label) {\n const result = new Uint8Array(32).fill(0);\n if (!label)\n return bytesToHex(result);\n return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label));\n}\n//# sourceMappingURL=labelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { encodeLabelhash, } from './encodeLabelhash.js';\nimport { labelhash } from './labelhash.js';\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n */\nexport function packetToBytes(packet) {\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '');\n if (value.length === 0)\n return new Uint8Array(1);\n const bytes = new Uint8Array(stringToBytes(value).byteLength + 2);\n let offset = 0;\n const list = value.split('.');\n for (let i = 0; i < list.length; i++) {\n let encoded = stringToBytes(list[i]);\n // if the length is > 255, make the encoded label value a labelhash\n // this is compatible with the universal resolver\n if (encoded.byteLength > 255)\n encoded = stringToBytes(encodeLabelhash(labelhash(list[i])));\n bytes[offset] = encoded.length;\n bytes.set(encoded, offset + 1);\n offset += encoded.length + 1;\n }\n if (bytes.byteLength !== offset + 1)\n return bytes.slice(0, offset + 1);\n return bytes;\n}\n//# sourceMappingURL=packetToBytes.js.map","import { addressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAddressParameters}\n * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAddress, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAddress = await getEnsAddress(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(client, { blockNumber, blockTag, coinType, name, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n try {\n const functionData = encodeFunctionData({\n abi: addressResolverAbi,\n functionName: 'addr',\n ...(coinType != null\n ? { args: [namehash(name), BigInt(coinType)] }\n : { args: [namehash(name)] }),\n });\n const res = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolve',\n args: [toHex(packetToBytes(name)), functionData],\n blockNumber,\n blockTag,\n });\n if (res[0] === '0x')\n return null;\n const address = decodeFunctionResult({\n abi: addressResolverAbi,\n args: coinType != null ? [namehash(name), BigInt(coinType)] : undefined,\n functionName: 'addr',\n data: res[0],\n });\n if (address === '0x')\n return null;\n if (trim(address) === '0x00')\n return null;\n return address;\n }\n catch (err) {\n if (isNullUniversalResolverError(err, 'resolve'))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsAddress.js.map","import { BaseError } from './base.js';\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n constructor({ data }) {\n super('Unable to extract image from metadata. The metadata may be malformed or invalid.', {\n metaMessages: [\n '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n '',\n `Provided data: ${JSON.stringify(data)}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarInvalidMetadataError'\n });\n }\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n constructor({ reason }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarInvalidNftUriError'\n });\n }\n}\nexport class EnsAvatarUriResolutionError extends BaseError {\n constructor({ uri }) {\n super(`Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarUriResolutionError'\n });\n }\n}\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n constructor({ namespace }) {\n super(`ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarUnsupportedNamespaceError'\n });\n }\n}\n//# sourceMappingURL=ens.js.map","import { readContract, } from '../../../actions/public/readContract.js';\nimport { EnsAvatarInvalidMetadataError, EnsAvatarInvalidNftUriError, EnsAvatarUnsupportedNamespaceError, EnsAvatarUriResolutionError, } from '../../../errors/ens.js';\nconst networkRegex = /(?https?:\\/\\/[^\\/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?\\/)?(?ipfs\\/|ipns\\/)?(?[\\w\\-.]+)(?\\/.*)?/;\nconst ipfsHashRegex = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\/(?[\\w\\-.]+))?(?\\/.*)?$/;\nconst base64Regex = /^data:([a-zA-Z\\-/+]*);base64,([^\"].*)/;\nconst dataURIRegex = /^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;\nexport async function isImageUri(uri) {\n try {\n const res = await fetch(uri, { method: 'HEAD' });\n // retrieve content type header to check if content is image\n if (res.status === 200) {\n const contentType = res.headers.get('content-type');\n return contentType?.startsWith('image/');\n }\n return false;\n }\n catch (error) {\n // if error is not cors related then fail\n if (typeof error === 'object' && typeof error.response !== 'undefined') {\n return false;\n }\n // fail in NodeJS, since the error is not cors but any other network issue\n // biome-ignore lint/suspicious/noPrototypeBuiltins:\n if (!globalThis.hasOwnProperty('Image'))\n return false;\n // in case of cors, use image api to validate if given url is an actual image\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n resolve(true);\n };\n img.onerror = () => {\n resolve(false);\n };\n img.src = uri;\n });\n }\n}\nexport function getGateway(custom, defaultGateway) {\n if (!custom)\n return defaultGateway;\n if (custom.endsWith('/'))\n return custom.slice(0, -1);\n return custom;\n}\nexport function resolveAvatarUri({ uri, gatewayUrls, }) {\n const isEncoded = base64Regex.test(uri);\n if (isEncoded)\n return { uri, isOnChain: true, isEncoded };\n const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io');\n const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net');\n const networkRegexMatch = uri.match(networkRegex);\n const { protocol, subpath, target, subtarget = '', } = networkRegexMatch?.groups || {};\n const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/';\n const isIPFS = protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri);\n if (uri.startsWith('http') && !isIPNS && !isIPFS) {\n let replacedUri = uri;\n if (gatewayUrls?.arweave)\n replacedUri = uri.replace(/https:\\/\\/arweave.net/g, gatewayUrls?.arweave);\n return { uri: replacedUri, isOnChain: false, isEncoded: false };\n }\n if ((isIPNS || isIPFS) && target) {\n return {\n uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n if (protocol === 'ar:/' && target) {\n return {\n uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n let parsedUri = uri.replace(dataURIRegex, '');\n if (parsedUri.startsWith(' res.json());\n const image = await parseAvatarUri({\n gatewayUrls,\n uri: getJsonImage(res),\n });\n return image;\n }\n catch {\n throw new EnsAvatarUriResolutionError({ uri });\n }\n}\nexport async function parseAvatarUri({ gatewayUrls, uri, }) {\n const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls });\n if (isOnChain)\n return resolvedURI;\n // check if resolvedURI is an image, if it is return the url\n const isImage = await isImageUri(resolvedURI);\n if (isImage)\n return resolvedURI;\n throw new EnsAvatarUriResolutionError({ uri });\n}\nexport function parseNftUri(uri_) {\n let uri = uri_;\n // parse valid nft spec (CAIP-22/CAIP-29)\n // @see: https://github.com/ChainAgnostic/CAIPs/tree/master/CAIPs\n if (uri.startsWith('did:nft:')) {\n // convert DID to CAIP\n uri = uri.replace('did:nft:', '').replace(/_/g, '/');\n }\n const [reference, asset_namespace, tokenID] = uri.split('/');\n const [eip_namespace, chainID] = reference.split(':');\n const [erc_namespace, contractAddress] = asset_namespace.split(':');\n if (!eip_namespace || eip_namespace.toLowerCase() !== 'eip155')\n throw new EnsAvatarInvalidNftUriError({ reason: 'Only EIP-155 supported' });\n if (!chainID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Chain ID not found' });\n if (!contractAddress)\n throw new EnsAvatarInvalidNftUriError({\n reason: 'Contract address not found',\n });\n if (!tokenID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Token ID not found' });\n if (!erc_namespace)\n throw new EnsAvatarInvalidNftUriError({ reason: 'ERC namespace not found' });\n return {\n chainID: parseInt(chainID),\n namespace: erc_namespace.toLowerCase(),\n contractAddress: contractAddress,\n tokenID,\n };\n}\nexport async function getNftTokenUri(client, { nft }) {\n if (nft.namespace === 'erc721') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'tokenURI',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'tokenURI',\n args: [BigInt(nft.tokenID)],\n });\n }\n if (nft.namespace === 'erc1155') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'uri',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: '_id', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'uri',\n args: [BigInt(nft.tokenID)],\n });\n }\n throw new EnsAvatarUnsupportedNamespaceError({ namespace: nft.namespace });\n}\n//# sourceMappingURL=utils.js.map","import { getJsonImage, getMetadataAvatarUri, getNftTokenUri, parseAvatarUri, parseNftUri, resolveAvatarUri, } from './utils.js';\nexport async function parseAvatarRecord(client, { gatewayUrls, record, }) {\n if (/eip155:/i.test(record))\n return parseNftAvatarUri(client, { gatewayUrls, record });\n return parseAvatarUri({ uri: record, gatewayUrls });\n}\nasync function parseNftAvatarUri(client, { gatewayUrls, record, }) {\n // parse NFT URI into properties\n const nft = parseNftUri(record);\n // fetch tokenURI from the NFT contract\n const nftUri = await getNftTokenUri(client, { nft });\n // resolve the URI from the fetched tokenURI\n const { uri: resolvedNftUri, isOnChain, isEncoded, } = resolveAvatarUri({ uri: nftUri, gatewayUrls });\n // if the resolved URI is on chain, return the data\n if (isOnChain &&\n (resolvedNftUri.includes('data:application/json;base64,') ||\n resolvedNftUri.startsWith('{'))) {\n const encodedJson = isEncoded\n ? // if it is encoded, decode it\n atob(resolvedNftUri.replace('data:application/json;base64,', ''))\n : // if it isn't encoded assume it is a JSON string, but it could be anything (it will error if it is)\n resolvedNftUri;\n const decoded = JSON.parse(encodedJson);\n return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls });\n }\n let uriTokenId = nft.tokenID;\n if (nft.namespace === 'erc1155')\n uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0');\n return getMetadataAvatarUri({\n gatewayUrls,\n uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n });\n}\n//# sourceMappingURL=parseAvatarRecord.js.map","import { textResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsTextParameters}\n * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsText, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const twitterRecord = await getEnsText(client, {\n * name: normalize('wevm.eth'),\n * key: 'com.twitter',\n * })\n * // 'wagmi_sh'\n */\nexport async function getEnsText(client, { blockNumber, blockTag, name, key, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n try {\n const res = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolve',\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: textResolverAbi,\n functionName: 'text',\n args: [namehash(name), key],\n }),\n ],\n blockNumber,\n blockTag,\n });\n if (res[0] === '0x')\n return null;\n const record = decodeFunctionResult({\n abi: textResolverAbi,\n functionName: 'text',\n data: res[0],\n });\n return record === '' ? null : record;\n }\n catch (err) {\n if (isNullUniversalResolverError(err, 'resolve'))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsText.js.map","import { parseAvatarRecord, } from '../../utils/ens/avatar/parseAvatarRecord.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getEnsText, } from './getEnsText.js';\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText.html) with `key` set to `'avatar'`.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAvatarParameters}\n * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAvatar, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAvatar = await getEnsAvatar(client, {\n * name: normalize('wevm.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar(client, { blockNumber, blockTag, gatewayUrls, name, universalResolverAddress, }) {\n const record = await getAction(client, getEnsText, 'getEnsText')({\n blockNumber,\n blockTag,\n key: 'avatar',\n name,\n universalResolverAddress,\n });\n if (!record)\n return null;\n try {\n return await parseAvatarRecord(client, { record, gatewayUrls });\n }\n catch {\n return null;\n }\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { universalResolverReverseAbi } from '../../constants/abis.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsNameParameters}\n * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsName } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensName = await getEnsName(client, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wevm.eth'\n */\nexport async function getEnsName(client, { address, blockNumber, blockTag, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;\n try {\n const res = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: universalResolverReverseAbi,\n functionName: 'reverse',\n args: [toHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n });\n return res[0];\n }\n catch (err) {\n if (isNullUniversalResolverError(err, 'reverse'))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsName.js.map","import { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsResolverParameters}\n * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsResolver, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const resolverAddress = await getEnsResolver(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver(client, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n const [resolverAddress] = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: [\n {\n inputs: [{ type: 'bytes' }],\n name: 'findResolver',\n outputs: [{ type: 'address' }, { type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n ],\n functionName: 'findResolver',\n args: [toHex(packetToBytes(name))],\n blockNumber,\n blockTag,\n });\n return resolverAddress;\n}\n//# sourceMappingURL=getEnsResolver.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter.html\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\nexport async function createBlockFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newBlockFilter',\n });\n const id = await client.request({\n method: 'eth_newBlockFilter',\n });\n return { id, request: getRequest(id), type: 'block' };\n}\n//# sourceMappingURL=createBlockFilter.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter.html\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param client - Client to use\n * @param parameters - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\nexport async function createEventFilter(client, { address, args, event, events: events_, fromBlock, strict, toBlock, } = {}) {\n const events = events_ ?? (event ? [event] : undefined);\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n let topics = [];\n if (events) {\n topics = [\n events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n })),\n ];\n if (event)\n topics = topics[0];\n }\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n });\n return {\n abi: events,\n args,\n eventName: event ? event.name : undefined,\n fromBlock,\n id,\n request: getRequest(id),\n strict,\n toBlock,\n type: 'event',\n };\n}\n//# sourceMappingURL=createEventFilter.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter.html\n * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n */\nexport async function createPendingTransactionFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newPendingTransactionFilter',\n });\n const id = await client.request({\n method: 'eth_newPendingTransactionFilter',\n });\n return { id, request: getRequest(id), type: 'transaction' };\n}\n//# sourceMappingURL=createPendingTransactionFilter.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance.html\n * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n *\n * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther.html).\n *\n * ```ts\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * blockTag: 'safe'\n * })\n * const balanceAsEther = formatEther(balance)\n * // \"6.942\"\n * ```\n *\n * @param client - Client to use\n * @param parameters - {@link GetBalanceParameters}\n * @returns The balance of the address in wei. {@link GetBalanceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBalance } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n * // 10000000000000000000000n (wei)\n */\nexport async function getBalance(client, { address, blockNumber, blockTag = 'latest' }) {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const balance = await client.request({\n method: 'eth_getBalance',\n params: [address, blockNumberHex || blockTag],\n });\n return BigInt(balance);\n}\n//# sourceMappingURL=getBalance.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount.html\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockTransactionCountParameters}\n * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const count = await getBlockTransactionCount(client)\n */\nexport async function getBlockTransactionCount(client, { blockHash, blockNumber, blockTag = 'latest', } = {}) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let count;\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n });\n }\n else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n });\n }\n return hexToNumber(count);\n}\n//# sourceMappingURL=getBlockTransactionCount.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getBytecode.html\n * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n *\n * @param client - Client to use\n * @param parameters - {@link GetBytecodeParameters}\n * @returns The contract's bytecode. {@link GetBytecodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBytecode } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getBytecode(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\nexport async function getBytecode(client, { address, blockNumber, blockTag = 'latest' }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const hex = await client.request({\n method: 'eth_getCode',\n params: [address, blockNumberHex || blockTag],\n });\n if (hex === '0x')\n return undefined;\n return hex;\n}\n//# sourceMappingURL=getBytecode.js.map","export function formatFeeHistory(feeHistory) {\n return {\n baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),\n gasUsedRatio: feeHistory.gasUsedRatio,\n oldestBlock: BigInt(feeHistory.oldestBlock),\n reward: feeHistory.reward?.map((reward) => reward.map((value) => BigInt(value))),\n };\n}\n//# sourceMappingURL=feeHistory.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatFeeHistory, } from '../../utils/formatters/feeHistory.js';\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory.html\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param client - Client to use\n * @param parameters - {@link GetFeeHistoryParameters}\n * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getFeeHistory } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const feeHistory = await getFeeHistory(client, {\n * blockCount: 4,\n * rewardPercentiles: [25, 75],\n * })\n */\nexport async function getFeeHistory(client, { blockCount, blockNumber, blockTag = 'latest', rewardPercentiles, }) {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const feeHistory = await client.request({\n method: 'eth_feeHistory',\n params: [\n numberToHex(blockCount),\n blockNumberHex || blockTag,\n rewardPercentiles,\n ],\n });\n return formatFeeHistory(feeHistory);\n}\n//# sourceMappingURL=getFeeHistory.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { decodeEventLog, } from '../../utils/abi/decodeEventLog.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs.html\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterLogsParameters}\n * @returns A list of event logs. {@link GetFilterLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterLogs(client, { filter })\n */\nexport async function getFilterLogs(_client, { filter, }) {\n const strict = filter.strict ?? false;\n const logs = await filter.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n });\n return logs\n .map((log) => {\n try {\n const { eventName, args } = 'abi' in filter && filter.abi\n ? decodeEventLog({\n abi: filter.abi,\n data: log.data,\n topics: log.topics,\n strict,\n })\n : { eventName: undefined, args: undefined };\n return formatLog(log, { args, eventName });\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if ('strict' in filter && filter.strict)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return formatLog(log, { args: isUnnamed ? [] : {}, eventName });\n }\n })\n .filter(Boolean);\n}\n//# sourceMappingURL=getFilterLogs.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\n//# sourceMappingURL=regex.js.map","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\nimport { encodeAbiParameters, } from '../abi/encodeAbiParameters.js';\nimport { concat } from '../data/concat.js';\nimport { toHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../typedData.js';\nexport function hashTypedData({ domain: domain_, message, primaryType, types: types_, }) {\n const domain = typeof domain_ === 'undefined' ? {} : domain_;\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...types_,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n const parts = ['0x1901'];\n if (domain)\n parts.push(hashDomain({\n domain,\n types: types,\n }));\n if (primaryType !== 'EIP712Domain') {\n parts.push(hashStruct({\n data: message,\n primaryType: primaryType,\n types: types,\n }));\n }\n return keccak256(concat(parts));\n}\nexport function hashDomain({ domain, types, }) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types,\n });\n}\nfunction hashStruct({ data, primaryType, types, }) {\n const encoded = encodeData({\n data,\n primaryType,\n types,\n });\n return keccak256(encoded);\n}\nfunction encodeData({ data, primaryType, types, }) {\n const encodedTypes = [{ type: 'bytes32' }];\n const encodedValues = [hashType({ primaryType, types })];\n for (const field of types[primaryType]) {\n const [type, value] = encodeField({\n types,\n name: field.name,\n type: field.type,\n value: data[field.name],\n });\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return encodeAbiParameters(encodedTypes, encodedValues);\n}\nfunction hashType({ primaryType, types, }) {\n const encodedHashType = toHex(encodeType({ primaryType, types }));\n return keccak256(encodedHashType);\n}\nfunction encodeType({ primaryType, types, }) {\n let result = '';\n const unsortedDeps = findTypeDependencies({ primaryType, types });\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\nfunction findTypeDependencies({ primaryType: primaryType_, types, }, results = new Set()) {\n const match = primaryType_.match(/^\\w*/u);\n const primaryType = match?.[0];\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results);\n }\n return results;\n}\nfunction encodeField({ types, name, type, value, }) {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ];\n }\n if (type === 'bytes') {\n const prepend = value.length % 2 ? '0' : '';\n value = `0x${prepend + value.slice(2)}`;\n return [{ type: 'bytes32' }, keccak256(value)];\n }\n if (type === 'string')\n return [{ type: 'bytes32' }, keccak256(toHex(value))];\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }));\n return [\n { type: 'bytes32' },\n keccak256(encodeAbiParameters(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [{ type }, value];\n}\n//# sourceMappingURL=hashTypedData.js.map","import { BytesSizeMismatchError } from '../errors/abi.js';\nimport { InvalidAddressError } from '../errors/address.js';\nimport { isAddress } from './address/isAddress.js';\nimport { size } from './data/size.js';\nimport { numberToHex } from './encoding/toHex.js';\nimport { bytesRegex, integerRegex } from './regex.js';\nimport { hashDomain, } from './signature/hashTypedData.js';\nexport function validateTypedData({ domain, message, primaryType, types: types_, }) {\n const types = types_;\n const validateData = (struct, value_) => {\n for (const param of struct) {\n const { name, type: type_ } = param;\n const type = type_;\n const value = value_[name];\n const integerMatch = type.match(integerRegex);\n if (integerMatch &&\n (typeof value === 'number' || typeof value === 'bigint')) {\n const [_type, base, size_] = integerMatch;\n // If number cannot be cast to a sized hex value, it is out of range\n // and will throw.\n numberToHex(value, {\n signed: base === 'int',\n size: parseInt(size_) / 8,\n });\n }\n if (type === 'address' && typeof value === 'string' && !isAddress(value))\n throw new InvalidAddressError({ address: value });\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size_] = bytesMatch;\n if (size_ && size(value) !== parseInt(size_))\n throw new BytesSizeMismatchError({\n expectedSize: parseInt(size_),\n givenSize: size(value),\n });\n }\n const struct = types[type];\n if (struct)\n validateData(struct, value);\n }\n };\n // Validate domain types.\n if (types.EIP712Domain && domain)\n validateData(types.EIP712Domain, domain);\n if (primaryType !== 'EIP712Domain') {\n // Validate message types.\n const type = types[primaryType];\n validateData(type, message);\n }\n}\nexport function getTypesForEIP712Domain({ domain, }) {\n return [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean);\n}\nexport function domainSeparator({ domain }) {\n return hashDomain({\n domain,\n types: {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n },\n });\n}\n//# sourceMappingURL=typedData.js.map","import { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nconst docsPath = '/docs/contract/encodeDeployData';\nexport function encodeDeployData({ abi, args, bytecode, }) {\n if (!args || args.length === 0)\n return bytecode;\n const description = abi.find((x) => 'type' in x && x.type === 'constructor');\n if (!description)\n throw new AbiConstructorNotFoundError({ docsPath });\n if (!('inputs' in description))\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n if (!description.inputs || description.inputs.length === 0)\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n const data = encodeAbiParameters(description.inputs, args);\n return concatHex([bytecode, data]);\n}\n//# sourceMappingURL=encodeDeployData.js.map","export const presignMessagePrefix = '\\x19Ethereum Signed Message:\\n';\n//# sourceMappingURL=strings.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nexport function hashMessage(message, to_) {\n const messageBytes = (() => {\n if (typeof message === 'string')\n return stringToBytes(message);\n if (message.raw instanceof Uint8Array)\n return message.raw;\n return toBytes(message.raw);\n })();\n const prefixBytes = stringToBytes(`${presignMessagePrefix}${messageBytes.length}`);\n return keccak256(concat([prefixBytes, messageBytes]), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n *\n * - Docs: https://viem.sh/docs/utilities/parseUnits.html\n *\n * @example\n * import { parseUnits } from 'viem'\n *\n * parseUnits('420', 9)\n * // 420000000000n\n */\nexport function parseUnits(value, decimals) {\n let [integer, fraction = '0'] = value.split('.');\n const negative = integer.startsWith('-');\n if (negative)\n integer = integer.slice(1);\n // trim leading zeros.\n fraction = fraction.replace(/(0+)$/, '');\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1)\n integer = `${BigInt(integer) + 1n}`;\n fraction = '';\n }\n else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ];\n const rounded = Math.round(Number(`${unit}.${right}`));\n if (rounded > 9)\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0');\n else\n fraction = `${left}${rounded}`;\n if (fraction.length > decimals) {\n fraction = fraction.slice(1);\n integer = `${BigInt(integer) + 1n}`;\n }\n fraction = fraction.slice(0, decimals);\n }\n else {\n fraction = fraction.padEnd(decimals, '0');\n }\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`);\n}\n//# sourceMappingURL=parseUnits.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { parseUnits } from './parseUnits.js';\n/**\n * Converts a string representation of ether to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseEther.html\n *\n * @example\n * import { parseEther } from 'viem'\n *\n * parseEther('420')\n * // 420000000000000000000n\n */\nexport function parseEther(ether, unit = 'wei') {\n return parseUnits(ether, etherUnits[unit]);\n}\n//# sourceMappingURL=parseEther.js.map","import { hexToNumber } from '../index.js';\nfunction formatStorageProof(storageProof) {\n return storageProof.map((proof) => ({\n ...proof,\n value: BigInt(proof.value),\n }));\n}\nexport function formatProof(proof) {\n return {\n ...proof,\n balance: proof.balance ? BigInt(proof.balance) : undefined,\n nonce: proof.nonce ? hexToNumber(proof.nonce) : undefined,\n storageProof: proof.storageProof\n ? formatStorageProof(proof.storageProof)\n : undefined,\n };\n}\n//# sourceMappingURL=proof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatProof, } from '../../utils/formatters/proof.js';\n/**\n * Returns the account and storage values of the specified account including the Merkle-proof.\n *\n * - Docs: https://viem.sh/docs/actions/public/getProof.html\n * - JSON-RPC Methods:\n * - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n *\n * @param client - Client to use\n * @param parameters - {@link GetProofParameters}\n * @returns Proof data. {@link GetProofReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getProof } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getProof(client, {\n * address: '0x...',\n * storageKeys: ['0x...'],\n * })\n */\nexport async function getProof(client, { address, blockNumber, blockTag: blockTag_, storageKeys, }) {\n const blockTag = blockTag_ ?? 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const proof = await client.request({\n method: 'eth_getProof',\n params: [address, storageKeys, blockNumberHex || blockTag],\n });\n return formatProof(proof);\n}\n//# sourceMappingURL=getProof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt.html\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param client - Client to use\n * @param parameters - {@link GetStorageAtParameters}\n * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getStorageAt } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getStorageAt(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * slot: toHex(0),\n * })\n */\nexport async function getStorageAt(client, { address, blockNumber, blockTag = 'latest', slot }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const data = await client.request({\n method: 'eth_getStorageAt',\n params: [address, slot, blockNumberHex || blockTag],\n });\n return data;\n}\n//# sourceMappingURL=getStorageAt.js.map","import { TransactionNotFoundError } from '../../errors/transaction.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatTransaction, } from '../../utils/formatters/transaction.js';\n/**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction.html\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionParameters}\n * @returns The transaction information. {@link GetTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transaction = await getTransaction(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransaction(client, { blockHash, blockNumber, blockTag: blockTag_, hash, index, }) {\n const blockTag = blockTag_ || 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let transaction = null;\n if (hash) {\n transaction = await client.request({\n method: 'eth_getTransactionByHash',\n params: [hash],\n });\n }\n else if (blockHash) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockHashAndIndex',\n params: [blockHash, numberToHex(index)],\n });\n }\n else if (blockNumberHex || blockTag) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockNumberAndIndex',\n params: [blockNumberHex || blockTag, numberToHex(index)],\n });\n }\n if (!transaction)\n throw new TransactionNotFoundError({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n });\n const format = client.chain?.formatters?.transaction?.format || formatTransaction;\n return format(transaction);\n}\n//# sourceMappingURL=getTransaction.js.map","import { getAction } from '../../utils/getAction.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\nimport { getTransaction, } from './getTransaction.js';\n/**\n * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations.html\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionConfirmationsParameters}\n * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionConfirmations } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const confirmations = await getTransactionConfirmations(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionConfirmations(client, { hash, transactionReceipt }) {\n const [blockNumber, transaction] = await Promise.all([\n getAction(client, getBlockNumber, 'getBlockNumber')({}),\n hash\n ? getAction(client, getTransaction, 'getBlockNumber')({ hash })\n : undefined,\n ]);\n const transactionBlockNumber = transactionReceipt?.blockNumber || transaction?.blockNumber;\n if (!transactionBlockNumber)\n return 0n;\n return blockNumber - transactionBlockNumber + 1n;\n}\n//# sourceMappingURL=getTransactionConfirmations.js.map","import { TransactionReceiptNotFoundError, } from '../../errors/transaction.js';\nimport { formatTransactionReceipt, } from '../../utils/formatters/transactionReceipt.js';\n/**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt.html\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionReceiptParameters}\n * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionReceipt } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await getTransactionReceipt(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionReceipt(client, { hash }) {\n const receipt = await client.request({\n method: 'eth_getTransactionReceipt',\n params: [hash],\n });\n if (!receipt)\n throw new TransactionReceiptNotFoundError({ hash });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n return format(receipt);\n}\n//# sourceMappingURL=getTransactionReceipt.js.map","import { multicall3Abi } from '../../constants/abis.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract } from './readContract.js';\n/**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract.html), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).\n *\n * - Docs: https://viem.sh/docs/contract/multicall.html\n *\n * @param client - Client to use\n * @param parameters - {@link MulticallParameters}\n * @returns An array of results with accompanying status. {@link MulticallReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { multicall } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const abi = parseAbi([\n * 'function balanceOf(address) view returns (uint256)',\n * 'function totalSupply() view returns (uint256)',\n * ])\n * const results = await multicall(client, {\n * contracts: [\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * },\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'totalSupply',\n * },\n * ],\n * })\n * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]\n */\nexport async function multicall(client, args) {\n const { allowFailure = true, batchSize: batchSize_, blockNumber, blockTag, contracts, multicallAddress: multicallAddress_, } = args;\n const batchSize = batchSize_ ??\n ((typeof client.batch?.multicall === 'object' &&\n client.batch.multicall.batchSize) ||\n 1024);\n let multicallAddress = multicallAddress_;\n if (!multicallAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. multicallAddress is required.');\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n const chunkedCalls = [[]];\n let currentChunk = 0;\n let currentChunkSize = 0;\n for (let i = 0; i < contracts.length; i++) {\n const { abi, address, args, functionName } = contracts[i];\n try {\n const callData = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n currentChunkSize += (callData.length - 2) / 2;\n // Check to see if we need to create a new chunk.\n if (\n // Check if batching is enabled.\n batchSize > 0 &&\n // Check if the current size of the batch exceeds the size limit.\n currentChunkSize > batchSize &&\n // Check if the current chunk is not already empty.\n chunkedCalls[currentChunk].length > 0) {\n currentChunk++;\n currentChunkSize = (callData.length - 2) / 2;\n chunkedCalls[currentChunk] = [];\n }\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData,\n target: address,\n },\n ];\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n });\n if (!allowFailure)\n throw error;\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData: '0x',\n target: address,\n },\n ];\n }\n }\n const aggregate3Results = await Promise.allSettled(chunkedCalls.map((calls) => getAction(client, readContract, 'readContract')({\n abi: multicall3Abi,\n address: multicallAddress,\n args: [calls],\n blockNumber,\n blockTag,\n functionName: 'aggregate3',\n })));\n const results = [];\n for (let i = 0; i < aggregate3Results.length; i++) {\n const result = aggregate3Results[i];\n // If an error occurred in a `readContract` invocation (ie. network error),\n // then append the failure reason to each contract result.\n if (result.status === 'rejected') {\n if (!allowFailure)\n throw result.reason;\n for (let j = 0; j < chunkedCalls[i].length; j++) {\n results.push({\n status: 'failure',\n error: result.reason,\n result: undefined,\n });\n }\n continue;\n }\n // If the `readContract` call was successful, then decode the results.\n const aggregate3Result = result.value;\n for (let j = 0; j < aggregate3Result.length; j++) {\n // Extract the response from `readContract`\n const { returnData, success } = aggregate3Result[j];\n // Extract the request call data from the original call.\n const { callData } = chunkedCalls[i][j];\n // Extract the contract config for this call from the `contracts` argument\n // for decoding.\n const { abi, address, functionName, args } = contracts[results.length];\n try {\n if (callData === '0x')\n throw new AbiDecodingZeroDataError();\n if (!success)\n throw new RawContractError({ data: returnData });\n const result = decodeFunctionResult({\n abi,\n args,\n data: returnData,\n functionName,\n });\n results.push(allowFailure ? { result, status: 'success' } : result);\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n });\n if (!allowFailure)\n throw error;\n results.push({ error, result: undefined, status: 'failure' });\n }\n }\n }\n if (results.length !== contracts.length)\n throw new BaseError('multicall results mismatch');\n return results;\n}\n//# sourceMappingURL=multicall.js.map","export const universalSignatureValidatorByteCode = '0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\n//# sourceMappingURL=contracts.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a) => a instanceof Uint8Array;\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\nexport function equalBytes(b1, b2) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length)\n return false;\n for (let i = 0; i < b1.length; i++)\n if (b1[i] !== b2[i])\n return false;\n return true;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport const bitSet = (n, pos, value) => {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n};\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || val instanceof Uint8Array,\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n//# sourceMappingURL=utils.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { isHex } from './isHex.js';\nexport function isBytesEqual(a_, b_) {\n const a = isHex(a_) ? toBytes(a_) : a_;\n const b = isHex(b_) ? toBytes(b_) : b_;\n return equalBytes(a, b);\n}\n//# sourceMappingURL=isBytesEqual.js.map","import { universalSignatureValidatorAbi } from '../../constants/abis.js';\nimport { universalSignatureValidatorByteCode } from '../../constants/contracts.js';\nimport { CallExecutionError } from '../../errors/contract.js';\nimport { isBytesEqual, } from '../../utils/data/isBytesEqual.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { encodeDeployData, isHex, toHex } from '../../utils/index.js';\nimport { call } from './call.js';\n/**\n * Verifies a message hash on chain using ERC-6492.\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyHashParameters}\n * @returns Whether or not the signature is valid. {@link VerifyHashReturnType}\n */\nexport async function verifyHash(client, { address, hash, signature, ...callRequest }) {\n const signatureHex = isHex(signature) ? signature : toHex(signature);\n try {\n const { data } = await getAction(client, call, 'call')({\n data: encodeDeployData({\n abi: universalSignatureValidatorAbi,\n args: [address, hash, signatureHex],\n bytecode: universalSignatureValidatorByteCode,\n }),\n ...callRequest,\n });\n return isBytesEqual(data ?? '0x0', '0x1');\n }\n catch (error) {\n if (error instanceof CallExecutionError) {\n // if the execution fails, the signature was not valid and an internal method inside of the validator reverted\n // this can happen for many reasons, for example if signer can not be recovered from the signature\n // or if the signature has no valid format\n return false;\n }\n throw error;\n }\n}\n//# sourceMappingURL=verifyHash.js.map","import { hashMessage } from '../../utils/index.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that a message was signed by the provided address.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage.html}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage(client, { address, message, signature, ...callRequest }) {\n const hash = hashMessage(message);\n return verifyHash(client, {\n address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyMessage.js.map","import { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData.html}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData(client, { address, signature, message, primaryType, types, domain, ...callRequest }) {\n const hash = hashTypedData({ message, primaryType, types, domain });\n return verifyHash(client, {\n address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyTypedData.js.map","import { hexToBigInt } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\n/**\n * Watches and returns incoming block numbers.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlockNumberParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, watchBlockNumber, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlockNumber(client, {\n * onBlockNumber: (blockNumber) => console.log(blockNumber),\n * })\n */\nexport function watchBlockNumber(client, { emitOnBegin = false, emitMissed = false, onBlockNumber, onError, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';\n let prevBlockNumber;\n const pollBlockNumber = () => {\n const observerId = stringify([\n 'watchBlockNumber',\n client.uid,\n emitOnBegin,\n emitMissed,\n pollingInterval,\n ]);\n return observe(observerId, { onBlockNumber, onError }, (emit) => poll(async () => {\n try {\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({ cacheTime: 0 });\n if (prevBlockNumber) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (blockNumber === prevBlockNumber)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (blockNumber - prevBlockNumber > 1 && emitMissed) {\n for (let i = prevBlockNumber + 1n; i < blockNumber; i++) {\n emit.onBlockNumber(i, prevBlockNumber);\n prevBlockNumber = i;\n }\n }\n }\n // If the next block number is greater than the previous,\n // it is not in the past, and we can emit the new block number.\n if (!prevBlockNumber || blockNumber > prevBlockNumber) {\n emit.onBlockNumber(blockNumber, prevBlockNumber);\n prevBlockNumber = blockNumber;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlockNumber = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newHeads'],\n onData(data) {\n if (!active)\n return;\n const blockNumber = hexToBigInt(data.result?.number);\n onBlockNumber(blockNumber, prevBlockNumber);\n prevBlockNumber = blockNumber;\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return unsubscribe;\n };\n return enablePolling ? pollBlockNumber() : subscribeBlockNumber();\n}\n//# sourceMappingURL=watchBlockNumber.js.map","import { BlockNotFoundError } from '../../errors/block.js';\nimport { TransactionNotFoundError, TransactionReceiptNotFoundError, WaitForTransactionReceiptTimeoutError, } from '../../errors/transaction.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { withRetry } from '../../utils/promise/withRetry.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\nimport { getTransaction, } from './getTransaction.js';\nimport { getTransactionReceipt, } from './getTransactionReceipt.js';\nimport { watchBlockNumber, } from './watchBlockNumber.js';\n/**\n * Waits for the [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms.html#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt). If the Transaction reverts, then the action will throw an error.\n *\n * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt.html\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/sending-transactions\n * - JSON-RPC Methods:\n * - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\n * - If a Transaction has been replaced:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\n * - Checks if one of the Transactions is a replacement\n * - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\n *\n * The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\n *\n * Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\n *\n * There are 3 types of Transaction Replacement reasons:\n *\n * - `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\n * - `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\n * - `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForTransactionReceiptParameters}\n * @returns The transaction receipt. {@link WaitForTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, waitForTransactionReceipt, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await waitForTransactionReceipt(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function waitForTransactionReceipt(client, { confirmations = 1, hash, onReplaced, pollingInterval = client.pollingInterval, timeout, }) {\n const observerId = stringify(['waitForTransactionReceipt', client.uid, hash]);\n let transaction;\n let replacedTransaction;\n let receipt;\n let retrying = false;\n return new Promise((resolve, reject) => {\n if (timeout)\n setTimeout(() => reject(new WaitForTransactionReceiptTimeoutError({ hash })), timeout);\n const _unobserve = observe(observerId, { onReplaced, resolve, reject }, (emit) => {\n const _unwatch = getAction(client, watchBlockNumber, 'watchBlockNumber')({\n emitMissed: true,\n emitOnBegin: true,\n poll: true,\n pollingInterval,\n async onBlockNumber(blockNumber_) {\n if (retrying)\n return;\n let blockNumber = blockNumber_;\n const done = (fn) => {\n _unwatch();\n fn();\n _unobserve();\n };\n try {\n // If we already have a valid receipt, let's check if we have enough\n // confirmations. If we do, then we can resolve.\n if (receipt) {\n if (confirmations > 1 &&\n (!receipt.blockNumber ||\n blockNumber - receipt.blockNumber + 1n < confirmations))\n return;\n done(() => emit.resolve(receipt));\n return;\n }\n // Get the transaction to check if it's been replaced.\n // We need to retry as some RPC Providers may be slow to sync\n // up mined transactions.\n if (!transaction) {\n retrying = true;\n await withRetry(async () => {\n transaction = (await getAction(client, getTransaction, 'getTransaction')({ hash }));\n if (transaction.blockNumber)\n blockNumber = transaction.blockNumber;\n }, {\n // exponential backoff\n delay: ({ count }) => ~~(1 << count) * 200,\n retryCount: 6,\n });\n retrying = false;\n }\n // Get the receipt to check if it's been processed.\n receipt = await getAction(client, getTransactionReceipt, 'getTransactionReceipt')({ hash });\n // Check if we have enough confirmations. If not, continue polling.\n if (confirmations > 1 &&\n (!receipt.blockNumber ||\n blockNumber - receipt.blockNumber + 1n < confirmations))\n return;\n done(() => emit.resolve(receipt));\n }\n catch (err) {\n // If the receipt is not found, the transaction will be pending.\n // We need to check if it has potentially been replaced.\n if (transaction &&\n (err instanceof TransactionNotFoundError ||\n err instanceof TransactionReceiptNotFoundError)) {\n try {\n replacedTransaction = transaction;\n // Let's retrieve the transactions from the current block.\n // We need to retry as some RPC Providers may be slow to sync\n // up mined blocks.\n retrying = true;\n const block = await withRetry(() => getAction(client, getBlock, 'getBlock')({\n blockNumber,\n includeTransactions: true,\n }), {\n // exponential backoff\n delay: ({ count }) => ~~(1 << count) * 200,\n retryCount: 6,\n shouldRetry: ({ error }) => error instanceof BlockNotFoundError,\n });\n retrying = false;\n const replacementTransaction = block.transactions.find(({ from, nonce }) => from === replacedTransaction.from &&\n nonce === replacedTransaction.nonce);\n // If we couldn't find a replacement transaction, continue polling.\n if (!replacementTransaction)\n return;\n // If we found a replacement transaction, return it's receipt.\n receipt = await getAction(client, getTransactionReceipt, 'getTransactionReceipt')({\n hash: replacementTransaction.hash,\n });\n // Check if we have enough confirmations. If not, continue polling.\n if (confirmations > 1 &&\n (!receipt.blockNumber ||\n blockNumber - receipt.blockNumber + 1n < confirmations))\n return;\n let reason = 'replaced';\n if (replacementTransaction.to === replacedTransaction.to &&\n replacementTransaction.value === replacedTransaction.value) {\n reason = 'repriced';\n }\n else if (replacementTransaction.from === replacementTransaction.to &&\n replacementTransaction.value === 0n) {\n reason = 'cancelled';\n }\n done(() => {\n emit.onReplaced?.({\n reason,\n replacedTransaction: replacedTransaction,\n transaction: replacementTransaction,\n transactionReceipt: receipt,\n });\n emit.resolve(receipt);\n });\n }\n catch (err_) {\n done(() => emit.reject(err_));\n }\n }\n else {\n done(() => emit.reject(err));\n }\n }\n },\n });\n });\n });\n}\n//# sourceMappingURL=waitForTransactionReceipt.js.map","import { formatBlock } from '../../utils/formatters/block.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlocksParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n *\n * @example\n * import { createPublicClient, watchBlocks, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlocks(client, {\n * onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks(client, { blockTag = 'latest', emitMissed = false, emitOnBegin = false, onBlock, onError, includeTransactions: includeTransactions_, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';\n const includeTransactions = includeTransactions_ ?? false;\n let prevBlock;\n const pollBlocks = () => {\n const observerId = stringify([\n 'watchBlocks',\n client.uid,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ]);\n return observe(observerId, { onBlock, onError }, (emit) => poll(async () => {\n try {\n const block = await getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n });\n if (block.number && prevBlock?.number) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (block.number === prevBlock.number)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (block.number - prevBlock.number > 1 && emitMissed) {\n for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: i,\n includeTransactions,\n }));\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n }\n if (\n // If no previous block exists, emit.\n !prevBlock?.number ||\n // If the block tag is \"pending\" with no block number, emit.\n (blockTag === 'pending' && !block?.number) ||\n // If the next block number is greater than the previous block number, emit.\n // We don't want to emit blocks in the past.\n (block.number && block.number > prevBlock.number)) {\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlocks = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newHeads'],\n onData(data) {\n if (!active)\n return;\n const format = client.chain?.formatters?.block?.format || formatBlock;\n const block = format(data.result);\n onBlock(block, prevBlock);\n prevBlock = block;\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return unsubscribe;\n };\n return enablePolling ? pollBlocks() : subscribeBlocks();\n}\n//# sourceMappingURL=watchBlocks.js.map","import { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { decodeEventLog, encodeEventTopics, formatLog, } from '../../utils/index.js';\nimport { createEventFilter, } from './createEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { getLogs } from './getLogs.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms.html#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent.html\n * - JSON-RPC Methods:\n * - **RPC Provider supports `eth_newFilter`:**\n * - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n * - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n * - **RPC Provider does not support `eth_newFilter`:**\n * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n *\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent.html#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter.html) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs.html) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchEventParameters}\n * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchEvent } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchEvent(client, {\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchEvent(client, { address, args, batch = true, event, events, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {\n const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';\n const strict = strict_ ?? false;\n const pollEvent = () => {\n const observerId = stringify([\n 'watchEvent',\n address,\n args,\n batch,\n client.uid,\n event,\n pollingInterval,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createEventFilter, 'createEventFilter')({\n address,\n args,\n event: event,\n events,\n strict,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getLogs, 'getLogs')({\n address,\n args,\n event: event,\n events,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitalize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeEvent = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const events_ = events ?? (event ? [event] : undefined);\n let topics = [];\n if (events_) {\n topics = [\n events_.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n })),\n ];\n if (event)\n topics = topics[0];\n }\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: events_,\n data: log.data,\n topics: log.topics,\n strict,\n });\n const formatted = formatLog(log, {\n args,\n eventName: eventName,\n });\n onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n onLogs([formatted]);\n }\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return unsubscribe;\n };\n return enablePolling ? pollEvent() : subscribeEvent();\n}\n//# sourceMappingURL=watchEvent.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions.html\n * - JSON-RPC Methods:\n * - When `poll: true`\n * - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\n * - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newPendingTransactions\"` event.\n *\n * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#ontransactions).\n *\n * @param client - Client to use\n * @param parameters - {@link WatchPendingTransactionsParameters}\n * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchPendingTransactions } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await watchPendingTransactions(client, {\n * onTransactions: (hashes) => console.log(hashes),\n * })\n */\nexport function watchPendingTransactions(client, { batch = true, onError, onTransactions, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';\n const pollPendingTransactions = () => {\n const observerId = stringify([\n 'watchPendingTransactions',\n client.uid,\n batch,\n pollingInterval,\n ]);\n return observe(observerId, { onTransactions, onError }, (emit) => {\n let filter;\n const unwatch = poll(async () => {\n try {\n if (!filter) {\n try {\n filter = await getAction(client, createPendingTransactionFilter, 'createPendingTransactionFilter')({});\n return;\n }\n catch (err) {\n unwatch();\n throw err;\n }\n }\n const hashes = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n if (hashes.length === 0)\n return;\n if (batch)\n emit.onTransactions(hashes);\n else\n for (const hash of hashes)\n emit.onTransactions([hash]);\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribePendingTransactions = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newPendingTransactions'],\n onData(data) {\n if (!active)\n return;\n const transaction = data.result;\n onTransactions([transaction]);\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return unsubscribe;\n };\n return enablePolling\n ? pollPendingTransactions()\n : subscribePendingTransactions();\n}\n//# sourceMappingURL=watchPendingTransactions.js.map","import { getEnsAddress, } from '../../actions/ens/getEnsAddress.js';\nimport { getEnsAvatar, } from '../../actions/ens/getEnsAvatar.js';\nimport { getEnsName, } from '../../actions/ens/getEnsName.js';\nimport { getEnsResolver, } from '../../actions/ens/getEnsResolver.js';\nimport { getEnsText, } from '../../actions/ens/getEnsText.js';\nimport { call, } from '../../actions/public/call.js';\nimport { createBlockFilter, } from '../../actions/public/createBlockFilter.js';\nimport { createContractEventFilter, } from '../../actions/public/createContractEventFilter.js';\nimport { createEventFilter, } from '../../actions/public/createEventFilter.js';\nimport { createPendingTransactionFilter, } from '../../actions/public/createPendingTransactionFilter.js';\nimport { estimateContractGas, } from '../../actions/public/estimateContractGas.js';\nimport { estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { estimateMaxPriorityFeePerGas, } from '../../actions/public/estimateMaxPriorityFeePerGas.js';\nimport { getBalance, } from '../../actions/public/getBalance.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getBlockNumber, } from '../../actions/public/getBlockNumber.js';\nimport { getBlockTransactionCount, } from '../../actions/public/getBlockTransactionCount.js';\nimport { getBytecode, } from '../../actions/public/getBytecode.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { getContractEvents, } from '../../actions/public/getContractEvents.js';\nimport { getFeeHistory, } from '../../actions/public/getFeeHistory.js';\nimport { getFilterChanges, } from '../../actions/public/getFilterChanges.js';\nimport { getFilterLogs, } from '../../actions/public/getFilterLogs.js';\nimport { getGasPrice, } from '../../actions/public/getGasPrice.js';\nimport { getLogs, } from '../../actions/public/getLogs.js';\nimport { getProof, } from '../../actions/public/getProof.js';\nimport { getStorageAt, } from '../../actions/public/getStorageAt.js';\nimport { getTransaction, } from '../../actions/public/getTransaction.js';\nimport { getTransactionConfirmations, } from '../../actions/public/getTransactionConfirmations.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { getTransactionReceipt, } from '../../actions/public/getTransactionReceipt.js';\nimport { multicall, } from '../../actions/public/multicall.js';\nimport { readContract, } from '../../actions/public/readContract.js';\nimport { simulateContract, } from '../../actions/public/simulateContract.js';\nimport { uninstallFilter, } from '../../actions/public/uninstallFilter.js';\nimport { verifyMessage, } from '../../actions/public/verifyMessage.js';\nimport { verifyTypedData, } from '../../actions/public/verifyTypedData.js';\nimport { waitForTransactionReceipt, } from '../../actions/public/waitForTransactionReceipt.js';\nimport { watchBlockNumber, } from '../../actions/public/watchBlockNumber.js';\nimport { watchBlocks, } from '../../actions/public/watchBlocks.js';\nimport { watchContractEvent, } from '../../actions/public/watchContractEvent.js';\nimport { watchEvent, } from '../../actions/public/watchEvent.js';\nimport { watchPendingTransactions, } from '../../actions/public/watchPendingTransactions.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nexport function publicActions(client) {\n return {\n call: (args) => call(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getBytecode(client, args),\n getChainId: () => getChainId(client),\n getContractEvents: (args) => getContractEvents(client, args),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsAvatar: (args) => getEnsAvatar(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getEnsResolver: (args) => getEnsResolver(client, args),\n getEnsText: (args) => getEnsText(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getProof: (args) => getProof(client, args),\n estimateMaxPriorityFeePerGas: (args) => estimateMaxPriorityFeePerGas(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) => getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n readContract: (args) => readContract(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n simulateContract: (args) => simulateContract(client, args),\n verifyMessage: (args) => verifyMessage(client, args),\n verifyTypedData: (args) => verifyTypedData(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n };\n}\n//# sourceMappingURL=public.js.map","import { createClient, } from './createClient.js';\nimport { publicActions } from './decorators/public.js';\nexport function createPublicClient(parameters) {\n const { key = 'public', name = 'Public Client' } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n type: 'publicClient',\n });\n return client.extend(publicActions);\n}\n//# sourceMappingURL=createPublicClient.js.map","import { encodeDeployData } from '../../utils/abi/encodeDeployData.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await deployContract(client, {\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract(walletClient, { abi, args, bytecode, ...request }) {\n const calldata = encodeDeployData({\n abi,\n args,\n bytecode,\n });\n return sendTransaction(walletClient, {\n ...request,\n data: calldata,\n });\n}\n//# sourceMappingURL=deployContract.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses.html\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses(client) {\n if (client.account?.type === 'local')\n return [client.account.address];\n const addresses = await client.request({ method: 'eth_accounts' });\n return addresses.map((address) => checksumAddress(address));\n}\n//# sourceMappingURL=getAddresses.js.map","/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions.html\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions(client) {\n const permissions = await client.request({ method: 'wallet_getPermissions' });\n return permissions;\n}\n//# sourceMappingURL=getPermissions.js.map","import { getAddress } from '../../utils/address/getAddress.js';\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses.html\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses(client) {\n const addresses = await client.request({ method: 'eth_requestAccounts' });\n return addresses.map((address) => getAddress(address));\n}\n//# sourceMappingURL=requestAddresses.js.map","/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions.html\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n * eth_accounts: {}\n * })\n */\nexport async function requestPermissions(client, permissions) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n });\n}\n//# sourceMappingURL=requestPermissions.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { stringToHex, toHex, } from '../../utils/encoding/toHex.js';\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data.html#personal-sign)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage.html) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress.html) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * message: 'hello world',\n * })\n */\nexport async function signMessage(client, { account: account_ = client.account, message, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signMessage',\n });\n const account = parseAccount(account_);\n if (account.type === 'local')\n return account.signMessage({ message });\n const message_ = (() => {\n if (typeof message === 'string')\n return stringToHex(message);\n if (message.raw instanceof Uint8Array)\n return toHex(message.raw);\n return message.raw;\n })();\n return client.request({\n method: 'personal_sign',\n params: [message_, account.address],\n });\n}\n//# sourceMappingURL=signMessage.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport {} from '../../types/rpc.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { numberToHex } from '../../utils/index.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\n/**\n * Signs a transaction.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTransaction.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param args - {@link SignTransactionParameters}\n * @returns The signed serialized tranasction. {@link SignTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function signTransaction(client, args) {\n const { account: account_ = client.account, chain = client.chain, ...transaction } = args;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTransaction',\n });\n const account = parseAccount(account_);\n assertRequest({\n account,\n ...args,\n });\n const chainId = await getAction(client, getChainId, 'getChainId')({});\n if (chain !== null)\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n const formatters = chain?.formatters || client.chain?.formatters;\n const format = formatters?.transactionRequest?.format || formatTransactionRequest;\n if (account.type === 'local')\n return account.signTransaction({\n ...transaction,\n chainId,\n }, { serializer: client.chain?.serializers?.transaction });\n return await client.request({\n method: 'eth_signTransaction',\n params: [\n {\n ...format(transaction),\n chainId: numberToHex(chainId),\n from: account.address,\n },\n ],\n });\n}\n//# sourceMappingURL=signTransaction.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../../utils/typedData.js';\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data.html#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signTypedData(client, {\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\nexport async function signTypedData(client, { account: account_ = client.account, domain, message, primaryType, types: types_, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTypedData',\n });\n const account = parseAccount(account_);\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...types_,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n if (account.type === 'local')\n return account.signTypedData({\n domain,\n primaryType,\n types,\n message,\n });\n const typedData = stringify({ domain: domain ?? {}, primaryType, types, message }, (_, value) => (isHex(value) ? value.toLowerCase() : value));\n return client.request({\n method: 'eth_signTypedData_v4',\n params: [account.address, typedData],\n });\n}\n//# sourceMappingURL=signTypedData.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain(client, { id }) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n });\n}\n//# sourceMappingURL=switchChain.js.map","/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\nexport async function watchAsset(client, params) {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params,\n });\n return added;\n}\n//# sourceMappingURL=watchAsset.js.map","import { getChainId, } from '../../actions/public/getChainId.js';\nimport { addChain, } from '../../actions/wallet/addChain.js';\nimport { deployContract, } from '../../actions/wallet/deployContract.js';\nimport { getAddresses, } from '../../actions/wallet/getAddresses.js';\nimport { getPermissions, } from '../../actions/wallet/getPermissions.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { requestAddresses, } from '../../actions/wallet/requestAddresses.js';\nimport { requestPermissions, } from '../../actions/wallet/requestPermissions.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendTransaction, } from '../../actions/wallet/sendTransaction.js';\nimport { signMessage, } from '../../actions/wallet/signMessage.js';\nimport { signTransaction, } from '../../actions/wallet/signTransaction.js';\nimport { signTypedData, } from '../../actions/wallet/signTypedData.js';\nimport { switchChain, } from '../../actions/wallet/switchChain.js';\nimport { watchAsset, } from '../../actions/wallet/watchAsset.js';\nimport { writeContract, } from '../../actions/wallet/writeContract.js';\nexport function walletActions(client) {\n return {\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n getAddresses: () => getAddresses(client),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n signMessage: (args) => signMessage(client, args),\n signTransaction: (args) => signTransaction(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n };\n}\n//# sourceMappingURL=wallet.js.map","import { createClient, } from './createClient.js';\nimport { walletActions } from './decorators/wallet.js';\nexport function createWalletClient(parameters) {\n const { key = 'wallet', name = 'Wallet Client', transport } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n transport: (opts) => transport({ ...opts, retryCount: 0 }),\n type: 'walletClient',\n });\n return client.extend(walletActions);\n}\n//# sourceMappingURL=createWalletClient.js.map","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { getSocket, rpc } from '../../utils/rpc.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a WebSocket transport that connects to a JSON-RPC API.\n */\nexport function webSocket(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { key = 'webSocket', name = 'WebSocket JSON-RPC', retryDelay } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10000;\n const url_ = url || chain?.rpcUrls.default.webSocket?.[0];\n if (!url_)\n throw new UrlRequiredError();\n return createTransport({\n key,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const socket = await getSocket(url_);\n const { error, result } = await rpc.webSocketAsync(socket, {\n body,\n timeout,\n });\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'webSocket',\n }, {\n getSocket() {\n return getSocket(url_);\n },\n async subscribe({ params, onData, onError }) {\n const socket = await getSocket(url_);\n const { result: subscriptionId } = await new Promise((resolve, reject) => rpc.webSocket(socket, {\n body: {\n method: 'eth_subscribe',\n params,\n },\n onResponse(response) {\n if (response.error) {\n reject(response.error);\n onError?.(response.error);\n return;\n }\n if (typeof response.id === 'number') {\n resolve(response);\n return;\n }\n if (response.method !== 'eth_subscription')\n return;\n onData(response.params);\n },\n }));\n return {\n subscriptionId,\n async unsubscribe() {\n return new Promise((resolve) => rpc.webSocket(socket, {\n body: {\n method: 'eth_unsubscribe',\n params: [subscriptionId],\n },\n onResponse: resolve,\n }));\n },\n };\n },\n });\n };\n}\n//# sourceMappingURL=webSocket.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const goerli = /*#__PURE__*/ defineChain({\n id: 5,\n network: 'goerli',\n name: 'Goerli',\n nativeCurrency: { name: 'Goerli Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: ['https://eth-goerli.g.alchemy.com/v2'],\n webSocket: ['wss://eth-goerli.g.alchemy.com/v2'],\n },\n infura: {\n http: ['https://goerli.infura.io/v3'],\n webSocket: ['wss://goerli.infura.io/ws/v3'],\n },\n default: {\n http: ['https://rpc.ankr.com/eth_goerli'],\n },\n public: {\n http: ['https://rpc.ankr.com/eth_goerli'],\n },\n },\n blockExplorers: {\n etherscan: {\n name: 'Etherscan',\n url: 'https://goerli.etherscan.io',\n },\n default: {\n name: 'Etherscan',\n url: 'https://goerli.etherscan.io',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0x56522D00C410a43BFfDF00a9A569489297385790',\n blockCreated: 8765204,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 6507670,\n },\n },\n testnet: true,\n});\n//# sourceMappingURL=goerli.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const mainnet = /*#__PURE__*/ defineChain({\n id: 1,\n network: 'homestead',\n name: 'Ethereum',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: ['https://eth-mainnet.g.alchemy.com/v2'],\n webSocket: ['wss://eth-mainnet.g.alchemy.com/v2'],\n },\n infura: {\n http: ['https://mainnet.infura.io/v3'],\n webSocket: ['wss://mainnet.infura.io/ws/v3'],\n },\n default: {\n http: ['https://cloudflare-eth.com'],\n },\n public: {\n http: ['https://cloudflare-eth.com'],\n },\n },\n blockExplorers: {\n etherscan: {\n name: 'Etherscan',\n url: 'https://etherscan.io',\n },\n default: {\n name: 'Etherscan',\n url: 'https://etherscan.io',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0xc0497E381f536Be9ce14B0dD3817cBcAe57d2F62',\n blockCreated: 16966585,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 14353601,\n },\n },\n});\n//# sourceMappingURL=mainnet.js.map","// src/errors.ts\nvar ChainNotConfiguredForConnectorError = class extends Error {\n constructor({\n chainId,\n connectorId\n }) {\n super(`Chain \"${chainId}\" not configured for connector \"${connectorId}\".`);\n this.name = \"ChainNotConfiguredForConnectorError\";\n }\n};\nvar ConnectorNotFoundError = class extends Error {\n constructor() {\n super(...arguments);\n this.name = \"ConnectorNotFoundError\";\n this.message = \"Connector not found\";\n }\n};\n\nexport {\n ChainNotConfiguredForConnectorError,\n ConnectorNotFoundError\n};\n","// src/utils/normalizeChainId.ts\nfunction normalizeChainId(chainId) {\n if (typeof chainId === \"string\")\n return Number.parseInt(\n chainId,\n chainId.trim().substring(0, 2) === \"0x\" ? 16 : 10\n );\n if (typeof chainId === \"bigint\")\n return Number(chainId);\n return chainId;\n}\n\nexport {\n normalizeChainId\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n\n// src/base.ts\nimport { default as EventEmitter } from \"eventemitter3\";\nimport { goerli, mainnet } from \"viem/chains\";\nvar Connector = class extends EventEmitter {\n constructor({\n chains = [mainnet, goerli],\n options\n }) {\n super();\n this.chains = chains;\n this.options = options;\n }\n getBlockExplorerUrls(chain) {\n const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};\n if (blockExplorer)\n return [\n blockExplorer.url,\n ...Object.values(blockExplorers).map((x) => x.url)\n ];\n }\n isChainUnsupported(chainId) {\n return !this.chains.some((x) => x.id === chainId);\n }\n setStorage(storage) {\n this.storage = storage;\n }\n};\n\nexport {\n __privateGet,\n __privateAdd,\n __privateSet,\n __privateMethod,\n Connector\n};\n","import {\n ChainNotConfiguredForConnectorError,\n ConnectorNotFoundError\n} from \"./chunk-UGBGYVBH.js\";\nimport {\n normalizeChainId\n} from \"./chunk-OQILYQDO.js\";\nimport {\n Connector,\n __privateAdd,\n __privateGet,\n __privateSet\n} from \"./chunk-W65LBPLT.js\";\n\n// src/injected.ts\nimport {\n ResourceUnavailableRpcError,\n SwitchChainError,\n UserRejectedRequestError,\n createWalletClient,\n custom,\n getAddress,\n numberToHex\n} from \"viem\";\n\n// src/utils/getInjectedName.ts\nfunction getInjectedName(ethereum) {\n if (!ethereum)\n return \"Injected\";\n const getName = (provider) => {\n if (provider.isApexWallet)\n return \"Apex Wallet\";\n if (provider.isAvalanche)\n return \"Core Wallet\";\n if (provider.isBackpack)\n return \"Backpack\";\n if (provider.isBifrost)\n return \"Bifrost Wallet\";\n if (provider.isBitKeep)\n return \"BitKeep\";\n if (provider.isBitski)\n return \"Bitski\";\n if (provider.isBlockWallet)\n return \"BlockWallet\";\n if (provider.isBraveWallet)\n return \"Brave Wallet\";\n if (provider.isCoin98)\n return \"Coin98 Wallet\";\n if (provider.isCoinbaseWallet)\n return \"Coinbase Wallet\";\n if (provider.isDawn)\n return \"Dawn Wallet\";\n if (provider.isDefiant)\n return \"Defiant\";\n if (provider.isDesig)\n return \"Desig Wallet\";\n if (provider.isEnkrypt)\n return \"Enkrypt\";\n if (provider.isExodus)\n return \"Exodus\";\n if (provider.isFordefi)\n return \"Fordefi\";\n if (provider.isFrame)\n return \"Frame\";\n if (provider.isFrontier)\n return \"Frontier Wallet\";\n if (provider.isGamestop)\n return \"GameStop Wallet\";\n if (provider.isHaqqWallet)\n return \"HAQQ Wallet\";\n if (provider.isHyperPay)\n return \"HyperPay Wallet\";\n if (provider.isImToken)\n return \"ImToken\";\n if (provider.isHaloWallet)\n return \"Halo Wallet\";\n if (provider.isKuCoinWallet)\n return \"KuCoin Wallet\";\n if (provider.isMathWallet)\n return \"MathWallet\";\n if (provider.isNovaWallet)\n return \"Nova Wallet\";\n if (provider.isOkxWallet || provider.isOKExWallet)\n return \"OKX Wallet\";\n if (provider.isOneInchIOSWallet || provider.isOneInchAndroidWallet)\n return \"1inch Wallet\";\n if (provider.isOneKey)\n return \"OneKey Wallet\";\n if (provider.isOpera)\n return \"Opera\";\n if (provider.isPhantom)\n return \"Phantom\";\n if (provider.isPortal)\n return \"Ripio Portal\";\n if (provider.isRabby)\n return \"Rabby Wallet\";\n if (provider.isRainbow)\n return \"Rainbow\";\n if (provider.isSafePal)\n return \"SafePal Wallet\";\n if (provider.isStatus)\n return \"Status\";\n if (provider.isSubWallet)\n return \"SubWallet\";\n if (provider.isTalisman)\n return \"Talisman\";\n if (provider.isTally)\n return \"Taho\";\n if (provider.isTokenPocket)\n return \"TokenPocket\";\n if (provider.isTokenary)\n return \"Tokenary\";\n if (provider.isTrust || provider.isTrustWallet)\n return \"Trust Wallet\";\n if (provider.isTTWallet)\n return \"TTWallet\";\n if (provider.isXDEFI)\n return \"XDEFI Wallet\";\n if (provider.isZeal)\n return \"Zeal\";\n if (provider.isZerion)\n return \"Zerion\";\n if (provider.isMetaMask)\n return \"MetaMask\";\n };\n if (ethereum.providers?.length) {\n const nameSet = /* @__PURE__ */ new Set();\n let unknownCount = 1;\n for (const provider of ethereum.providers) {\n let name = getName(provider);\n if (!name) {\n name = `Unknown Wallet #${unknownCount}`;\n unknownCount += 1;\n }\n nameSet.add(name);\n }\n const names = [...nameSet];\n if (names.length)\n return names;\n return names[0] ?? \"Injected\";\n }\n return getName(ethereum) ?? \"Injected\";\n}\n\n// src/injected.ts\nvar _provider;\nvar InjectedConnector = class extends Connector {\n constructor({\n chains,\n options: options_\n } = {}) {\n const options = {\n shimDisconnect: true,\n getProvider() {\n if (typeof window === \"undefined\")\n return;\n const ethereum = window.ethereum;\n if (ethereum?.providers && ethereum.providers.length > 0)\n return ethereum.providers[0];\n return ethereum;\n },\n ...options_\n };\n super({ chains, options });\n this.id = \"injected\";\n __privateAdd(this, _provider, void 0);\n this.shimDisconnectKey = `${this.id}.shimDisconnect`;\n this.onAccountsChanged = (accounts) => {\n if (accounts.length === 0)\n this.emit(\"disconnect\");\n else\n this.emit(\"change\", {\n account: getAddress(accounts[0])\n });\n };\n this.onChainChanged = (chainId) => {\n const id = normalizeChainId(chainId);\n const unsupported = this.isChainUnsupported(id);\n this.emit(\"change\", { chain: { id, unsupported } });\n };\n this.onDisconnect = async (error) => {\n if (error.code === 1013) {\n const provider = await this.getProvider();\n if (provider) {\n const isAuthorized = await this.getAccount();\n if (isAuthorized)\n return;\n }\n }\n this.emit(\"disconnect\");\n if (this.options.shimDisconnect)\n this.storage?.removeItem(this.shimDisconnectKey);\n };\n const provider = options.getProvider();\n if (typeof options.name === \"string\")\n this.name = options.name;\n else if (provider) {\n const detectedName = getInjectedName(provider);\n if (options.name)\n this.name = options.name(detectedName);\n else {\n if (typeof detectedName === \"string\")\n this.name = detectedName;\n else\n this.name = detectedName[0];\n }\n } else\n this.name = \"Injected\";\n this.ready = !!provider;\n }\n async connect({ chainId } = {}) {\n try {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n if (provider.on) {\n provider.on(\"accountsChanged\", this.onAccountsChanged);\n provider.on(\"chainChanged\", this.onChainChanged);\n provider.on(\"disconnect\", this.onDisconnect);\n }\n this.emit(\"message\", { type: \"connecting\" });\n const accounts = await provider.request({\n method: \"eth_requestAccounts\"\n });\n const account = getAddress(accounts[0]);\n let id = await this.getChainId();\n let unsupported = this.isChainUnsupported(id);\n if (chainId && id !== chainId) {\n const chain = await this.switchChain(chainId);\n id = chain.id;\n unsupported = this.isChainUnsupported(id);\n }\n if (this.options.shimDisconnect)\n this.storage?.setItem(this.shimDisconnectKey, true);\n return { account, chain: { id, unsupported } };\n } catch (error) {\n if (this.isUserRejectedRequestError(error))\n throw new UserRejectedRequestError(error);\n if (error.code === -32002)\n throw new ResourceUnavailableRpcError(error);\n throw error;\n }\n }\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider?.removeListener)\n return;\n provider.removeListener(\"accountsChanged\", this.onAccountsChanged);\n provider.removeListener(\"chainChanged\", this.onChainChanged);\n provider.removeListener(\"disconnect\", this.onDisconnect);\n if (this.options.shimDisconnect)\n this.storage?.removeItem(this.shimDisconnectKey);\n }\n async getAccount() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n const accounts = await provider.request({\n method: \"eth_accounts\"\n });\n return getAddress(accounts[0]);\n }\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n return provider.request({ method: \"eth_chainId\" }).then(normalizeChainId);\n }\n async getProvider() {\n const provider = this.options.getProvider();\n if (provider)\n __privateSet(this, _provider, provider);\n return __privateGet(this, _provider);\n }\n async getWalletClient({\n chainId\n } = {}) {\n const [provider, account] = await Promise.all([\n this.getProvider(),\n this.getAccount()\n ]);\n const chain = this.chains.find((x) => x.id === chainId);\n if (!provider)\n throw new Error(\"provider is required.\");\n return createWalletClient({\n account,\n chain,\n transport: custom(provider)\n });\n }\n async isAuthorized() {\n try {\n if (this.options.shimDisconnect && !this.storage?.getItem(this.shimDisconnectKey))\n return false;\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n const account = await this.getAccount();\n return !!account;\n } catch {\n return false;\n }\n }\n async switchChain(chainId) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n const id = numberToHex(chainId);\n try {\n await Promise.all([\n provider.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: id }]\n }),\n new Promise(\n (res) => this.on(\"change\", ({ chain }) => {\n if (chain?.id === chainId)\n res();\n })\n )\n ]);\n return this.chains.find((x) => x.id === chainId) ?? {\n id: chainId,\n name: `Chain ${id}`,\n network: `${id}`,\n nativeCurrency: { name: \"Ether\", decimals: 18, symbol: \"ETH\" },\n rpcUrls: { default: { http: [\"\"] }, public: { http: [\"\"] } }\n };\n } catch (error) {\n const chain = this.chains.find((x) => x.id === chainId);\n if (!chain)\n throw new ChainNotConfiguredForConnectorError({\n chainId,\n connectorId: this.id\n });\n if (error.code === 4902 || error?.data?.originalError?.code === 4902) {\n try {\n await provider.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: id,\n chainName: chain.name,\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: [chain.rpcUrls.public?.http[0] ?? \"\"],\n blockExplorerUrls: this.getBlockExplorerUrls(chain)\n }\n ]\n });\n const currentChainId = await this.getChainId();\n if (currentChainId !== chainId)\n throw new UserRejectedRequestError(\n new Error(\"User rejected switch after adding network.\")\n );\n return chain;\n } catch (error2) {\n throw new UserRejectedRequestError(error2);\n }\n }\n if (this.isUserRejectedRequestError(error))\n throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n }\n async watchAsset({\n address,\n decimals = 18,\n image,\n symbol\n }) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n return provider.request({\n method: \"wallet_watchAsset\",\n params: {\n type: \"ERC20\",\n options: {\n address,\n decimals,\n image,\n symbol\n }\n }\n });\n }\n isUserRejectedRequestError(error) {\n return error.code === 4001;\n }\n};\n_provider = new WeakMap();\n\nexport {\n InjectedConnector\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n\nexport {\n __privateGet,\n __privateAdd,\n __privateSet,\n __privateMethod\n};\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api)\n return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\n \"[zustand devtools middleware] Please install/enable Redux devtools extension\"\n );\n }\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording)\n return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format. \n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState)\n return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst oldImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize({ ...get() });\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then(\n (serializedValue) => storage.setItem(options.name, serializedValue)\n ).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\nconst newImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persistImpl = (config, baseOptions) => {\n if (\"getStorage\" in baseOptions || \"serialize\" in baseOptions || \"deserialize\" in baseOptions) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.\"\n );\n }\n return oldImpl(config, baseOptions);\n }\n return newImpl(config, baseOptions);\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\") ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","import {\n InjectedConnector\n} from \"./chunk-BVC4KGLQ.js\";\nimport {\n __privateAdd,\n __privateGet,\n __privateMethod,\n __privateSet\n} from \"./chunk-MQXBDTVK.js\";\n\n// src/utils/configureChains.ts\nimport { createPublicClient, fallback, http, webSocket } from \"viem\";\nfunction configureChains(defaultChains, providers, {\n batch = { multicall: { wait: 32 } },\n pollingInterval = 4e3,\n rank,\n retryCount,\n retryDelay,\n stallTimeout\n} = {}) {\n if (!defaultChains.length)\n throw new Error(\"must have at least one chain\");\n let chains = [];\n const httpUrls = {};\n const wsUrls = {};\n for (const chain of defaultChains) {\n let configExists = false;\n for (const provider of providers) {\n const apiConfig = provider(chain);\n if (!apiConfig)\n continue;\n configExists = true;\n if (!chains.some(({ id }) => id === chain.id)) {\n chains = [...chains, apiConfig.chain];\n }\n httpUrls[chain.id] = [\n ...httpUrls[chain.id] || [],\n ...apiConfig.rpcUrls.http\n ];\n if (apiConfig.rpcUrls.webSocket) {\n wsUrls[chain.id] = [\n ...wsUrls[chain.id] || [],\n ...apiConfig.rpcUrls.webSocket\n ];\n }\n }\n if (!configExists) {\n throw new Error(\n [\n `Could not find valid provider configuration for chain \"${chain.name}\".\n`,\n \"You may need to add `jsonRpcProvider` to `configureChains` with the chain's RPC URLs.\",\n \"Read more: https://wagmi.sh/core/providers/jsonRpc\"\n ].join(\"\\n\")\n );\n }\n }\n return {\n chains,\n publicClient: ({ chainId }) => {\n const activeChain = chains.find((x) => x.id === chainId) ?? defaultChains[0];\n const chainHttpUrls = httpUrls[activeChain.id];\n if (!chainHttpUrls || !chainHttpUrls[0])\n throw new Error(`No providers configured for chain \"${activeChain.id}\"`);\n const publicClient = createPublicClient({\n batch,\n chain: activeChain,\n transport: fallback(\n chainHttpUrls.map((url) => http(url, { timeout: stallTimeout })),\n { rank, retryCount, retryDelay }\n ),\n pollingInterval\n });\n return Object.assign(publicClient, {\n chains\n });\n },\n webSocketPublicClient: ({ chainId }) => {\n const activeChain = chains.find((x) => x.id === chainId) ?? defaultChains[0];\n const chainWsUrls = wsUrls[activeChain.id];\n if (!chainWsUrls || !chainWsUrls[0])\n return void 0;\n const publicClient = createPublicClient({\n batch,\n chain: activeChain,\n transport: fallback(\n chainWsUrls.map((url) => webSocket(url, { timeout: stallTimeout })),\n { rank, retryCount, retryDelay }\n ),\n pollingInterval\n });\n return Object.assign(publicClient, {\n chains\n });\n }\n };\n}\n\n// src/errors.ts\nimport { ConnectorNotFoundError } from \"@wagmi/connectors\";\nvar ChainMismatchError = class extends Error {\n constructor({\n activeChain,\n targetChain\n }) {\n super(\n `Chain mismatch: Expected \"${targetChain}\", received \"${activeChain}\".`\n );\n this.name = \"ChainMismatchError\";\n }\n};\nvar ChainNotConfiguredError = class extends Error {\n constructor({\n chainId,\n connectorId\n }) {\n super(\n `Chain \"${chainId}\" not configured${connectorId ? ` for connector \"${connectorId}\"` : \"\"}.`\n );\n this.name = \"ChainNotConfigured\";\n }\n};\nvar ConnectorAlreadyConnectedError = class extends Error {\n constructor() {\n super(...arguments);\n this.name = \"ConnectorAlreadyConnectedError\";\n this.message = \"Connector already connected\";\n }\n};\nvar ConfigChainsNotFound = class extends Error {\n constructor() {\n super(...arguments);\n this.name = \"ConfigChainsNotFound\";\n this.message = \"No chains were found on the wagmi config. Some functions that require a chain may not work.\";\n }\n};\nvar SwitchChainNotSupportedError = class extends Error {\n constructor({ connector }) {\n super(`\"${connector.name}\" does not support programmatic chain switching.`);\n this.name = \"SwitchChainNotSupportedError\";\n }\n};\n\n// src/utils/deepEqual.ts\nfunction deepEqual(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n if (a.constructor !== b.constructor)\n return false;\n let length;\n let i;\n if (Array.isArray(a) && Array.isArray(b)) {\n length = a.length;\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0; )\n if (!deepEqual(a[i], b[i]))\n return false;\n return true;\n }\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n const keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length; i-- !== 0; ) {\n const key = keys[i];\n if (key && !deepEqual(a[key], b[key]))\n return false;\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\n// src/utils/deserialize.ts\nvar findAndReplace = (cacheRef, {\n find,\n replace\n}) => {\n if (cacheRef && find(cacheRef)) {\n return replace(cacheRef);\n }\n if (typeof cacheRef !== \"object\") {\n return cacheRef;\n }\n if (Array.isArray(cacheRef)) {\n return cacheRef.map((item) => findAndReplace(item, { find, replace }));\n }\n if (cacheRef instanceof Object) {\n return Object.entries(cacheRef).reduce(\n (curr, [key, value]) => ({\n ...curr,\n [key]: findAndReplace(value, { find, replace })\n }),\n {}\n );\n }\n return cacheRef;\n};\nfunction deserialize(cachedString) {\n const cache = JSON.parse(cachedString);\n const deserializedCacheWithBigInts = findAndReplace(cache, {\n find: (data) => typeof data === \"string\" && data.startsWith(\"#bigint.\"),\n replace: (data) => BigInt(data.replace(\"#bigint.\", \"\"))\n });\n return deserializedCacheWithBigInts;\n}\n\n// src/utils/getParameters.ts\nfunction getCallParameters(args) {\n return {\n accessList: args.accessList,\n account: args.account,\n blockNumber: args.blockNumber,\n blockTag: args.blockTag,\n data: args.data,\n gas: args.gas,\n gasPrice: args.gasPrice,\n maxFeePerGas: args.maxFeePerGas,\n maxPriorityFeePerGas: args.maxPriorityFeePerGas,\n nonce: args.nonce,\n to: args.to,\n value: args.value\n };\n}\nfunction getSendTransactionParameters(args) {\n return {\n accessList: args.accessList,\n account: args.account,\n data: args.data,\n gas: args.gas,\n gasPrice: args.gasPrice,\n maxFeePerGas: args.maxFeePerGas,\n maxPriorityFeePerGas: args.maxPriorityFeePerGas,\n nonce: args.nonce,\n to: args.to,\n value: args.value\n };\n}\n\n// src/utils/getUnit.ts\nimport { weiUnits } from \"viem\";\nfunction getUnit(unit) {\n if (typeof unit === \"number\")\n return unit;\n if (unit === \"wei\")\n return 0;\n return Math.abs(weiUnits[unit]);\n}\n\n// src/utils/serialize.ts\nfunction getReferenceKey(keys, cutoff) {\n return keys.slice(0, cutoff).join(\".\") || \".\";\n}\nfunction getCutoff(array, value) {\n const { length } = array;\n for (let index = 0; index < length; ++index) {\n if (array[index] === value) {\n return index + 1;\n }\n }\n return 0;\n}\nfunction createReplacer(replacer, circularReplacer) {\n const hasReplacer = typeof replacer === \"function\";\n const hasCircularReplacer = typeof circularReplacer === \"function\";\n const cache = [];\n const keys = [];\n return function replace(key, value) {\n if (typeof value === \"object\") {\n if (cache.length) {\n const thisCutoff = getCutoff(cache, this);\n if (thisCutoff === 0) {\n cache[cache.length] = this;\n } else {\n cache.splice(thisCutoff);\n keys.splice(thisCutoff);\n }\n keys[keys.length] = key;\n const valueCutoff = getCutoff(cache, value);\n if (valueCutoff !== 0) {\n return hasCircularReplacer ? circularReplacer.call(\n this,\n key,\n value,\n getReferenceKey(keys, valueCutoff)\n ) : `[ref=${getReferenceKey(keys, valueCutoff)}]`;\n }\n } else {\n cache[0] = value;\n keys[0] = key;\n }\n }\n return hasReplacer ? replacer.call(this, key, value) : value;\n };\n}\nfunction serialize(value, replacer, indent, circularReplacer) {\n return JSON.stringify(\n value,\n createReplacer((key, value_) => {\n const value2 = typeof value_ === \"bigint\" ? `#bigint.${value_.toString()}` : value_;\n return replacer?.(key, value2) || value2;\n }, circularReplacer),\n indent ?? void 0\n );\n}\n\n// src/config.ts\nimport { persist, subscribeWithSelector } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\n// src/storage.ts\nvar noopStorage = {\n getItem: (_key) => \"\",\n setItem: (_key, _value) => null,\n removeItem: (_key) => null\n};\nfunction createStorage({\n deserialize: deserialize2 = deserialize,\n key: prefix = \"wagmi\",\n serialize: serialize2 = serialize,\n storage\n}) {\n return {\n ...storage,\n getItem: (key, defaultState = null) => {\n const value = storage.getItem(`${prefix}.${key}`);\n try {\n return value ? deserialize2(value) : defaultState;\n } catch (error) {\n console.warn(error);\n return defaultState;\n }\n },\n setItem: (key, value) => {\n if (value === null) {\n storage.removeItem(`${prefix}.${key}`);\n } else {\n try {\n storage.setItem(`${prefix}.${key}`, serialize2(value));\n } catch (err) {\n console.error(err);\n }\n }\n },\n removeItem: (key) => storage.removeItem(`${prefix}.${key}`)\n };\n}\n\n// src/config.ts\nvar storeKey = \"store\";\nvar _isAutoConnecting, _lastUsedConnector, _addEffects, addEffects_fn;\nvar Config = class {\n constructor({\n autoConnect = false,\n connectors = [new InjectedConnector()],\n publicClient,\n storage = createStorage({\n storage: typeof window !== \"undefined\" ? window.localStorage : noopStorage\n }),\n logger = {\n warn: console.warn\n },\n webSocketPublicClient\n }) {\n __privateAdd(this, _addEffects);\n this.publicClients = /* @__PURE__ */ new Map();\n this.webSocketPublicClients = /* @__PURE__ */ new Map();\n __privateAdd(this, _isAutoConnecting, void 0);\n __privateAdd(this, _lastUsedConnector, void 0);\n this.args = {\n autoConnect,\n connectors,\n logger,\n publicClient,\n storage,\n webSocketPublicClient\n };\n let status = \"disconnected\";\n let chainId;\n if (autoConnect) {\n try {\n const rawState = storage.getItem(storeKey);\n const data = rawState?.state?.data;\n status = data?.account ? \"reconnecting\" : \"connecting\";\n chainId = data?.chain?.id;\n } catch (_error) {\n }\n }\n const connectors_ = typeof connectors === \"function\" ? connectors() : connectors;\n connectors_.forEach((connector) => connector.setStorage(storage));\n this.store = createStore(\n subscribeWithSelector(\n persist(\n () => ({\n connectors: connectors_,\n publicClient: this.getPublicClient({ chainId }),\n status,\n webSocketPublicClient: this.getWebSocketPublicClient({ chainId })\n }),\n {\n name: storeKey,\n storage,\n partialize: (state) => ({\n ...autoConnect && {\n data: {\n account: state?.data?.account,\n chain: state?.data?.chain\n }\n },\n chains: state?.chains\n }),\n version: 2\n }\n )\n )\n );\n this.storage = storage;\n __privateSet(this, _lastUsedConnector, storage?.getItem(\"wallet\"));\n __privateMethod(this, _addEffects, addEffects_fn).call(this);\n if (autoConnect && typeof window !== \"undefined\")\n setTimeout(async () => await this.autoConnect(), 0);\n }\n get chains() {\n return this.store.getState().chains;\n }\n get connectors() {\n return this.store.getState().connectors;\n }\n get connector() {\n return this.store.getState().connector;\n }\n get data() {\n return this.store.getState().data;\n }\n get error() {\n return this.store.getState().error;\n }\n get lastUsedChainId() {\n return this.data?.chain?.id;\n }\n get publicClient() {\n return this.store.getState().publicClient;\n }\n get status() {\n return this.store.getState().status;\n }\n get subscribe() {\n return this.store.subscribe;\n }\n get webSocketPublicClient() {\n return this.store.getState().webSocketPublicClient;\n }\n setState(updater) {\n const newState = typeof updater === \"function\" ? updater(this.store.getState()) : updater;\n this.store.setState(newState, true);\n }\n clearState() {\n this.setState((x) => ({\n ...x,\n chains: void 0,\n connector: void 0,\n data: void 0,\n error: void 0,\n status: \"disconnected\"\n }));\n }\n async destroy() {\n if (this.connector)\n await this.connector.disconnect?.();\n __privateSet(this, _isAutoConnecting, false);\n this.clearState();\n this.store.destroy();\n }\n async autoConnect() {\n if (__privateGet(this, _isAutoConnecting))\n return;\n __privateSet(this, _isAutoConnecting, true);\n this.setState((x) => ({\n ...x,\n status: x.data?.account ? \"reconnecting\" : \"connecting\"\n }));\n const sorted = __privateGet(this, _lastUsedConnector) ? [...this.connectors].sort(\n (x) => x.id === __privateGet(this, _lastUsedConnector) ? -1 : 1\n ) : this.connectors;\n let connected = false;\n for (const connector of sorted) {\n if (!connector.ready || !connector.isAuthorized)\n continue;\n const isAuthorized = await connector.isAuthorized();\n if (!isAuthorized)\n continue;\n const data = await connector.connect();\n this.setState((x) => ({\n ...x,\n connector,\n chains: connector?.chains,\n data,\n status: \"connected\"\n }));\n connected = true;\n break;\n }\n if (!connected)\n this.setState((x) => ({\n ...x,\n data: void 0,\n status: \"disconnected\"\n }));\n __privateSet(this, _isAutoConnecting, false);\n return this.data;\n }\n setConnectors(connectors) {\n this.args = {\n ...this.args,\n connectors\n };\n const connectors_ = typeof connectors === \"function\" ? connectors() : connectors;\n connectors_.forEach((connector) => connector.setStorage(this.args.storage));\n this.setState((x) => ({\n ...x,\n connectors: connectors_\n }));\n }\n getPublicClient({ chainId } = {}) {\n let publicClient_ = this.publicClients.get(-1);\n if (publicClient_ && publicClient_?.chain.id === chainId)\n return publicClient_;\n publicClient_ = this.publicClients.get(chainId ?? -1);\n if (publicClient_)\n return publicClient_;\n const { publicClient } = this.args;\n publicClient_ = typeof publicClient === \"function\" ? publicClient({ chainId }) : publicClient;\n this.publicClients.set(chainId ?? -1, publicClient_);\n return publicClient_;\n }\n setPublicClient(publicClient) {\n const chainId = this.data?.chain?.id;\n this.args = {\n ...this.args,\n publicClient\n };\n this.publicClients.clear();\n this.setState((x) => ({\n ...x,\n publicClient: this.getPublicClient({ chainId })\n }));\n }\n getWebSocketPublicClient({ chainId } = {}) {\n let webSocketPublicClient_ = this.webSocketPublicClients.get(-1);\n if (webSocketPublicClient_ && webSocketPublicClient_?.chain.id === chainId)\n return webSocketPublicClient_;\n webSocketPublicClient_ = this.webSocketPublicClients.get(chainId ?? -1);\n if (webSocketPublicClient_)\n return webSocketPublicClient_;\n const { webSocketPublicClient } = this.args;\n webSocketPublicClient_ = typeof webSocketPublicClient === \"function\" ? webSocketPublicClient({ chainId }) : webSocketPublicClient;\n if (webSocketPublicClient_)\n this.webSocketPublicClients.set(chainId ?? -1, webSocketPublicClient_);\n return webSocketPublicClient_;\n }\n setWebSocketPublicClient(webSocketPublicClient) {\n const chainId = this.data?.chain?.id;\n this.args = {\n ...this.args,\n webSocketPublicClient\n };\n this.webSocketPublicClients.clear();\n this.setState((x) => ({\n ...x,\n webSocketPublicClient: this.getWebSocketPublicClient({\n chainId\n })\n }));\n }\n setLastUsedConnector(lastUsedConnector = null) {\n this.storage?.setItem(\"wallet\", lastUsedConnector);\n }\n};\n_isAutoConnecting = new WeakMap();\n_lastUsedConnector = new WeakMap();\n_addEffects = new WeakSet();\naddEffects_fn = function() {\n const onChange = (data) => {\n this.setState((x) => ({\n ...x,\n data: { ...x.data, ...data }\n }));\n };\n const onDisconnect = () => {\n this.clearState();\n };\n const onError = (error) => {\n this.setState((x) => ({ ...x, error }));\n };\n this.store.subscribe(\n ({ connector }) => connector,\n (connector, prevConnector) => {\n prevConnector?.off?.(\"change\", onChange);\n prevConnector?.off?.(\"disconnect\", onDisconnect);\n prevConnector?.off?.(\"error\", onError);\n if (!connector)\n return;\n connector.on?.(\"change\", onChange);\n connector.on?.(\"disconnect\", onDisconnect);\n connector.on?.(\"error\", onError);\n }\n );\n const { publicClient, webSocketPublicClient } = this.args;\n const subscribePublicClient = typeof publicClient === \"function\";\n const subscribeWebSocketPublicClient = typeof webSocketPublicClient === \"function\";\n if (subscribePublicClient || subscribeWebSocketPublicClient)\n this.store.subscribe(\n ({ data }) => data?.chain?.id,\n (chainId) => {\n this.setState((x) => ({\n ...x,\n publicClient: this.getPublicClient({ chainId }),\n webSocketPublicClient: this.getWebSocketPublicClient({\n chainId\n })\n }));\n }\n );\n};\nvar config;\nfunction createConfig(args) {\n const config_ = new Config(args);\n config = config_;\n return config_;\n}\nfunction getConfig() {\n if (!config) {\n throw new Error(\n \"No wagmi config found. Ensure you have set up a config: https://wagmi.sh/react/config\"\n );\n }\n return config;\n}\n\n// src/actions/accounts/connect.ts\nasync function connect({ chainId, connector }) {\n const config2 = getConfig();\n const activeConnector = config2.connector;\n if (activeConnector && connector.id === activeConnector.id)\n throw new ConnectorAlreadyConnectedError();\n try {\n config2.setState((x) => ({ ...x, status: \"connecting\" }));\n const data = await connector.connect({ chainId });\n config2.setLastUsedConnector(connector.id);\n config2.setState((x) => ({\n ...x,\n connector,\n chains: connector?.chains,\n data,\n status: \"connected\"\n }));\n config2.storage.setItem(\"connected\", true);\n return { ...data, connector };\n } catch (err) {\n config2.setState((x) => {\n return {\n ...x,\n status: x.connector ? \"connected\" : \"disconnected\"\n };\n });\n throw err;\n }\n}\n\n// src/actions/accounts/disconnect.ts\nasync function disconnect() {\n const config2 = getConfig();\n if (config2.connector)\n await config2.connector.disconnect();\n config2.clearState();\n config2.storage.removeItem(\"connected\");\n}\n\n// src/actions/accounts/fetchBalance.ts\nimport {\n ContractFunctionExecutionError as ContractFunctionExecutionError3,\n formatUnits as formatUnits2,\n hexToString as hexToString2,\n trim as trim2\n} from \"viem\";\n\n// src/constants/abis.ts\nvar erc20ABI = [\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"allowance\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"spender\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"approve\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"decimals\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint8\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"name\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"symbol\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transfer\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\"\n },\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n }\n];\nvar erc20ABI_bytes32 = [\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"allowance\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"spender\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"approve\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"decimals\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint8\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"name\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"symbol\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transfer\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\"\n },\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n }\n];\nvar erc721ABI = [\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"tokenId\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"ApprovalForAll\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"operator\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"approved\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"tokenId\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"approve\",\n stateMutability: \"payable\",\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"getApproved\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"address\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"isApprovedForAll\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"operator\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"name\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"ownerOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"owner\",\n type: \"address\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"safeTransferFrom\",\n stateMutability: \"payable\",\n inputs: [\n {\n name: \"from\",\n type: \"address\"\n },\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"safeTransferFrom\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"from\",\n type: \"address\"\n },\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"id\",\n type: \"uint256\"\n },\n {\n name: \"data\",\n type: \"bytes\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"setApprovalForAll\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"operator\",\n type: \"address\"\n },\n {\n name: \"approved\",\n type: \"bool\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"symbol\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"tokenByIndex\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"index\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"tokenByIndex\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"index\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"tokenURI\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n stateMutability: \"payable\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\"\n },\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"tokeId\",\n type: \"uint256\"\n }\n ],\n outputs: []\n }\n];\nvar erc4626ABI = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ],\n name: \"Approval\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"receiver\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"assets\",\n type: \"uint256\"\n },\n {\n indexed: false,\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ],\n name: \"Transfer\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"receiver\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"assets\",\n type: \"uint256\"\n },\n {\n indexed: false,\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"Withdraw\",\n type: \"event\"\n },\n {\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"spender\",\n type: \"address\"\n }\n ],\n name: \"allowance\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"approve\",\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"asset\",\n outputs: [\n {\n name: \"assetTokenAddress\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n name: \"balanceOf\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"convertToAssets\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n name: \"convertToShares\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n }\n ],\n name: \"deposit\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"caller\",\n type: \"address\"\n }\n ],\n name: \"maxDeposit\",\n outputs: [\n {\n name: \"maxAssets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"caller\",\n type: \"address\"\n }\n ],\n name: \"maxMint\",\n outputs: [\n {\n name: \"maxShares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"maxRedeem\",\n outputs: [\n {\n name: \"maxShares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"maxWithdraw\",\n outputs: [\n {\n name: \"maxAssets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n }\n ],\n name: \"mint\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n name: \"previewDeposit\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"previewMint\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"previewRedeem\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n name: \"previewWithdraw\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n },\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"redeem\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalAssets\",\n outputs: [\n {\n name: \"totalManagedAssets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"transfer\",\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"from\",\n type: \"address\"\n },\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"transferFrom\",\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n },\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"withdraw\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n }\n];\n\n// src/actions/contracts/fetchToken.ts\nimport {\n ContractFunctionExecutionError,\n formatUnits,\n hexToString,\n trim\n} from \"viem\";\nasync function fetchToken({\n address,\n chainId,\n formatUnits: unit = 18\n}) {\n async function fetchToken_({ abi }) {\n const erc20Config = { address, abi, chainId };\n const [decimals, name, symbol, totalSupply] = await readContracts({\n allowFailure: false,\n contracts: [\n { ...erc20Config, functionName: \"decimals\" },\n { ...erc20Config, functionName: \"name\" },\n { ...erc20Config, functionName: \"symbol\" },\n { ...erc20Config, functionName: \"totalSupply\" }\n ]\n });\n return {\n address,\n decimals,\n name,\n symbol,\n totalSupply: {\n formatted: formatUnits(totalSupply, getUnit(unit)),\n value: totalSupply\n }\n };\n }\n try {\n return await fetchToken_({ abi: erc20ABI });\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError) {\n const { name, symbol, ...rest } = await fetchToken_({\n abi: erc20ABI_bytes32\n });\n return {\n name: hexToString(trim(name, { dir: \"right\" })),\n symbol: hexToString(trim(symbol, { dir: \"right\" })),\n ...rest\n };\n }\n throw err;\n }\n}\n\n// src/actions/viem/getPublicClient.ts\nfunction getPublicClient({ chainId } = {}) {\n const config2 = getConfig();\n if (chainId)\n return config2.getPublicClient({ chainId }) || config2.publicClient;\n return config2.publicClient;\n}\n\n// src/actions/viem/getWalletClient.ts\nasync function getWalletClient({\n chainId\n} = {}) {\n const config2 = getConfig();\n const walletClient = await config2.connector?.getWalletClient?.({ chainId }) || null;\n return walletClient;\n}\n\n// src/actions/viem/getWebSocketPublicClient.ts\nfunction getWebSocketPublicClient({\n chainId\n} = {}) {\n const config2 = getConfig();\n if (chainId)\n return config2.getWebSocketPublicClient({ chainId }) || config2.webSocketPublicClient;\n return config2.webSocketPublicClient;\n}\n\n// src/actions/viem/watchPublicClient.ts\nfunction watchPublicClient(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(getPublicClient(args));\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return unsubscribe;\n}\n\n// src/actions/viem/watchWalletClient.ts\nimport { shallow } from \"zustand/shallow\";\nfunction watchWalletClient({ chainId }, callback) {\n const config2 = getConfig();\n const handleChange = async ({ chainId: chainId_ }) => {\n if (chainId && chainId_ && chainId !== chainId_)\n return;\n const walletClient = await getWalletClient({ chainId });\n if (!getConfig().connector)\n return callback(null);\n return callback(walletClient);\n };\n const unsubscribe = config2.subscribe(\n ({ data, connector }) => ({\n account: data?.account,\n chainId: data?.chain?.id,\n connector\n }),\n handleChange,\n {\n equalityFn: shallow\n }\n );\n return unsubscribe;\n}\n\n// src/actions/viem/watchWebSocketPublicClient.ts\nfunction watchWebSocketPublicClient(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(getWebSocketPublicClient(args));\n const unsubscribe = config2.subscribe(\n ({ webSocketPublicClient }) => webSocketPublicClient,\n handleChange\n );\n return unsubscribe;\n}\n\n// src/actions/contracts/prepareWriteContract.ts\nasync function prepareWriteContract({\n abi,\n address,\n args,\n chainId,\n dataSuffix,\n functionName,\n walletClient: walletClient_,\n ...config2\n}) {\n const publicClient = getPublicClient({ chainId });\n const walletClient = walletClient_ ?? await getWalletClient({ chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (chainId)\n assertActiveChain({ chainId });\n const {\n account,\n accessList,\n blockNumber,\n blockTag,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getCallParameters(config2);\n const { result, request } = await publicClient.simulateContract({\n abi,\n address,\n functionName,\n args,\n account: account || walletClient.account,\n accessList,\n blockNumber,\n blockTag,\n dataSuffix,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n });\n const minimizedAbi = abi.filter(\n (abiItem) => \"name\" in abiItem && abiItem.name === functionName\n );\n return {\n mode: \"prepared\",\n request: {\n ...request,\n abi: minimizedAbi,\n chainId\n },\n result\n };\n}\n\n// src/actions/contracts/getContract.ts\nimport { getContract as getContract_ } from \"viem\";\nfunction getContract({\n address,\n abi,\n chainId,\n walletClient\n}) {\n const publicClient = getPublicClient({ chainId });\n return getContract_({\n address,\n abi,\n publicClient,\n walletClient\n });\n}\n\n// src/actions/contracts/multicall.ts\nasync function multicall({\n chainId,\n contracts,\n blockNumber,\n blockTag,\n ...args\n}) {\n const publicClient = getPublicClient({ chainId });\n if (!publicClient.chains)\n throw new ConfigChainsNotFound();\n if (chainId && publicClient.chain.id !== chainId)\n throw new ChainNotConfiguredError({ chainId });\n return publicClient.multicall({\n allowFailure: args.allowFailure ?? true,\n blockNumber,\n blockTag,\n contracts\n });\n}\n\n// src/actions/contracts/readContract.ts\nasync function readContract({\n address,\n account,\n chainId,\n abi,\n args,\n functionName,\n blockNumber,\n blockTag\n}) {\n const publicClient = getPublicClient({ chainId });\n return publicClient.readContract({\n abi,\n address,\n account,\n functionName,\n args,\n blockNumber,\n blockTag\n });\n}\n\n// src/actions/contracts/readContracts.ts\nimport { ContractFunctionExecutionError as ContractFunctionExecutionError2 } from \"viem\";\nasync function readContracts({\n contracts,\n blockNumber,\n blockTag,\n ...args\n}) {\n const { allowFailure = true } = args;\n try {\n const publicClient = getPublicClient();\n const contractsByChainId = contracts.reduce((contracts2, contract, index) => {\n const chainId = contract.chainId ?? publicClient.chain.id;\n return {\n ...contracts2,\n [chainId]: [...contracts2[chainId] || [], { contract, index }]\n };\n }, {});\n const promises = () => Object.entries(contractsByChainId).map(\n ([chainId, contracts2]) => multicall({\n allowFailure,\n chainId: parseInt(chainId),\n contracts: contracts2.map(\n ({ contract }) => contract\n ),\n blockNumber,\n blockTag\n })\n );\n const multicallResults = (await Promise.all(promises())).flat();\n const resultIndexes = Object.values(contractsByChainId).flatMap(\n (contracts2) => contracts2.map(({ index }) => index)\n );\n return multicallResults.reduce((results, result, index) => {\n if (results)\n results[resultIndexes[index]] = result;\n return results;\n }, []);\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError2)\n throw err;\n const promises = () => contracts.map(\n (contract) => readContract({ ...contract, blockNumber, blockTag })\n );\n if (allowFailure)\n return (await Promise.allSettled(promises())).map((result) => {\n if (result.status === \"fulfilled\")\n return { result: result.value, status: \"success\" };\n return { error: result.reason, result: void 0, status: \"failure\" };\n });\n return await Promise.all(promises());\n }\n}\n\n// src/actions/contracts/watchContractEvent.ts\nimport { shallow as shallow2 } from \"zustand/shallow\";\nfunction watchContractEvent({\n address,\n abi,\n chainId,\n eventName\n}, callback) {\n let unwatch;\n const watchEvent = async () => {\n if (unwatch)\n unwatch();\n const publicClient = getWebSocketPublicClient({ chainId }) || getPublicClient({ chainId });\n unwatch = publicClient.watchContractEvent({\n address,\n abi,\n eventName,\n onLogs: callback\n });\n };\n watchEvent();\n const config2 = getConfig();\n const unsubscribe = config2.subscribe(\n ({ publicClient, webSocketPublicClient }) => ({\n publicClient,\n webSocketPublicClient\n }),\n watchEvent,\n { equalityFn: shallow2 }\n );\n return () => {\n unwatch?.();\n unsubscribe();\n };\n}\n\n// src/actions/network-status/watchBlockNumber.ts\nimport { shallow as shallow3 } from \"zustand/shallow\";\nfunction watchBlockNumber(args, callback) {\n let unwatch;\n const createListener = (publicClient) => {\n if (unwatch)\n unwatch();\n unwatch = publicClient.watchBlockNumber({\n onBlockNumber: callback,\n emitOnBegin: true,\n poll: true\n });\n };\n const publicClient_ = getWebSocketPublicClient({ chainId: args.chainId }) ?? getPublicClient({ chainId: args.chainId });\n if (args.listen)\n createListener(publicClient_);\n const config2 = getConfig();\n const unsubscribe = config2.subscribe(\n ({ publicClient, webSocketPublicClient }) => ({\n publicClient,\n webSocketPublicClient\n }),\n async ({ publicClient, webSocketPublicClient }) => {\n const publicClient_2 = webSocketPublicClient ?? publicClient;\n if (args.listen && !args.chainId && publicClient_2) {\n createListener(publicClient_2);\n }\n },\n {\n equalityFn: shallow3\n }\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/watchMulticall.ts\nfunction watchMulticall(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(await multicall(args));\n const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/watchReadContract.ts\nfunction watchReadContract(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(await readContract(args));\n const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/watchReadContracts.ts\nfunction watchReadContracts(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(await readContracts(args));\n const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/writeContract.ts\nasync function writeContract(config2) {\n const walletClient = await getWalletClient({ chainId: config2.chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (config2.chainId)\n assertActiveChain({ chainId: config2.chainId });\n let request;\n if (config2.mode === \"prepared\") {\n request = config2.request;\n } else {\n const { chainId: _, mode: __, ...args } = config2;\n const res = await prepareWriteContract(args);\n request = res.request;\n }\n const hash = await walletClient.writeContract({\n ...request,\n chain: config2.chainId ? { id: config2.chainId } : null\n });\n return { hash };\n}\n\n// src/actions/accounts/fetchBalance.ts\nasync function fetchBalance({\n address,\n chainId,\n formatUnits: unit,\n token\n}) {\n const config2 = getConfig();\n const publicClient = getPublicClient({ chainId });\n if (token) {\n const fetchContractBalance = async ({ abi }) => {\n const erc20Config = { abi, address: token, chainId };\n const [value2, decimals, symbol] = await readContracts({\n allowFailure: false,\n contracts: [\n {\n ...erc20Config,\n functionName: \"balanceOf\",\n args: [address]\n },\n { ...erc20Config, functionName: \"decimals\" },\n { ...erc20Config, functionName: \"symbol\" }\n ]\n });\n return {\n decimals,\n formatted: formatUnits2(value2 ?? \"0\", getUnit(unit ?? decimals)),\n symbol,\n value: value2\n };\n };\n try {\n return await fetchContractBalance({ abi: erc20ABI });\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError3) {\n const { symbol, ...rest } = await fetchContractBalance({\n abi: erc20ABI_bytes32\n });\n return {\n symbol: hexToString2(trim2(symbol, { dir: \"right\" })),\n ...rest\n };\n }\n throw err;\n }\n }\n const chains = [\n ...config2.publicClient.chains || [],\n ...config2.chains ?? []\n ];\n const value = await publicClient.getBalance({ address });\n const chain = chains.find((x) => x.id === publicClient.chain.id);\n return {\n decimals: chain?.nativeCurrency.decimals ?? 18,\n formatted: formatUnits2(value ?? \"0\", getUnit(unit ?? 18)),\n symbol: chain?.nativeCurrency.symbol ?? \"ETH\",\n value\n };\n}\n\n// src/actions/accounts/getAccount.ts\nfunction getAccount() {\n const { data, connector, status } = getConfig();\n switch (status) {\n case \"connected\":\n return {\n address: data?.account,\n connector,\n isConnected: true,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: false,\n status\n };\n case \"reconnecting\":\n return {\n address: data?.account,\n connector,\n isConnected: !!data?.account,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: true,\n status\n };\n case \"connecting\":\n return {\n address: data?.account,\n connector,\n isConnected: false,\n isConnecting: true,\n isDisconnected: false,\n isReconnecting: false,\n status\n };\n case \"disconnected\":\n return {\n address: void 0,\n connector: void 0,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n isReconnecting: false,\n status\n };\n }\n}\n\n// src/actions/accounts/getNetwork.ts\nfunction getNetwork() {\n const config2 = getConfig();\n const chainId = config2.data?.chain?.id;\n const activeChains = config2.chains ?? [];\n const activeChain = [\n ...config2.publicClient?.chains || [],\n ...activeChains\n ].find((x) => x.id === chainId) ?? {\n id: chainId,\n name: `Chain ${chainId}`,\n network: `${chainId}`,\n nativeCurrency: { name: \"Ether\", decimals: 18, symbol: \"ETH\" },\n rpcUrls: {\n default: { http: [\"\"] },\n public: { http: [\"\"] }\n }\n };\n return {\n chain: chainId ? {\n ...activeChain,\n ...config2.data?.chain,\n id: chainId\n } : void 0,\n chains: activeChains\n };\n}\n\n// src/actions/accounts/signMessage.ts\nasync function signMessage(args) {\n const walletClient = await getWalletClient();\n if (!walletClient)\n throw new ConnectorNotFoundError();\n return await walletClient.signMessage({\n message: args.message\n });\n}\n\n// src/actions/accounts/signTypedData.ts\nasync function signTypedData({\n domain,\n message,\n primaryType,\n types\n}) {\n const walletClient = await getWalletClient();\n if (!walletClient)\n throw new ConnectorNotFoundError();\n const { chainId } = domain;\n if (chainId)\n assertActiveChain({ chainId });\n return walletClient.signTypedData({\n message,\n primaryType,\n types,\n domain\n });\n}\n\n// src/actions/accounts/switchNetwork.ts\nasync function switchNetwork({\n chainId\n}) {\n const { connector } = getConfig();\n if (!connector)\n throw new ConnectorNotFoundError();\n if (!connector.switchChain)\n throw new SwitchChainNotSupportedError({\n connector\n });\n return connector.switchChain(chainId);\n}\n\n// src/actions/accounts/watchAccount.ts\nimport { shallow as shallow4 } from \"zustand/shallow\";\nfunction watchAccount(callback, { selector = (x) => x } = {}) {\n const config2 = getConfig();\n const handleChange = () => callback(getAccount());\n const unsubscribe = config2.subscribe(\n ({ data, connector, status }) => selector({\n address: data?.account,\n connector,\n status\n }),\n handleChange,\n {\n equalityFn: shallow4\n }\n );\n return unsubscribe;\n}\n\n// src/actions/accounts/watchNetwork.ts\nimport { shallow as shallow5 } from \"zustand/shallow\";\nfunction watchNetwork(callback, { selector = (x) => x } = {}) {\n const config2 = getConfig();\n const handleChange = () => callback(getNetwork());\n const unsubscribe = config2.subscribe(\n ({ data, chains }) => selector({ chainId: data?.chain?.id, chains }),\n handleChange,\n {\n equalityFn: shallow5\n }\n );\n return unsubscribe;\n}\n\n// src/actions/ens/fetchEnsAddress.ts\nimport { getAddress } from \"viem\";\nasync function fetchEnsAddress({\n chainId,\n name\n}) {\n const { normalize } = await import(\"viem/ens\");\n const publicClient = getPublicClient({ chainId });\n const address = await publicClient.getEnsAddress({\n name: normalize(name)\n });\n try {\n if (address === \"0x0000000000000000000000000000000000000000\")\n return null;\n return address ? getAddress(address) : null;\n } catch (_error) {\n return null;\n }\n}\n\n// src/actions/ens/fetchEnsAvatar.ts\nasync function fetchEnsAvatar({\n name,\n chainId\n}) {\n const { normalize } = await import(\"viem/ens\");\n const publicClient = getPublicClient({ chainId });\n const avatar = await publicClient.getEnsAvatar({ name: normalize(name) });\n return avatar;\n}\n\n// src/actions/ens/fetchEnsName.ts\nimport { getAddress as getAddress2 } from \"viem\";\nasync function fetchEnsName({\n address,\n chainId\n}) {\n const publicClient = getPublicClient({ chainId });\n return publicClient.getEnsName({\n address: getAddress2(address)\n });\n}\n\n// src/actions/ens/fetchEnsResolver.ts\nasync function fetchEnsResolver({\n chainId,\n name\n}) {\n const { normalize } = await import(\"viem/ens\");\n const publicClient = getPublicClient({ chainId });\n const resolver = await publicClient.getEnsResolver({ name: normalize(name) });\n return resolver;\n}\n\n// src/actions/network-status/fetchBlockNumber.ts\nasync function fetchBlockNumber({\n chainId\n} = {}) {\n const publicClient = getPublicClient({ chainId });\n const blockNumber = await publicClient.getBlockNumber();\n return blockNumber;\n}\n\n// src/actions/network-status/fetchFeeData.ts\nimport { formatUnits as formatUnits3, parseGwei } from \"viem\";\nasync function fetchFeeData({\n chainId,\n formatUnits: units = \"gwei\"\n} = {}) {\n const publicClient = getPublicClient({ chainId });\n const block = await publicClient.getBlock();\n let gasPrice = null;\n try {\n gasPrice = await publicClient.getGasPrice();\n } catch {\n }\n let lastBaseFeePerGas = null;\n let maxFeePerGas = null;\n let maxPriorityFeePerGas = null;\n if (block?.baseFeePerGas) {\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = parseGwei(\"1\");\n maxFeePerGas = block.baseFeePerGas * 2n + maxPriorityFeePerGas;\n }\n const unit = getUnit(units);\n const formatted = {\n gasPrice: gasPrice ? formatUnits3(gasPrice, unit) : null,\n maxFeePerGas: maxFeePerGas ? formatUnits3(maxFeePerGas, unit) : null,\n maxPriorityFeePerGas: maxPriorityFeePerGas ? formatUnits3(maxPriorityFeePerGas, unit) : null\n };\n return {\n lastBaseFeePerGas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n formatted\n };\n}\n\n// src/actions/transactions/fetchTransaction.ts\nasync function fetchTransaction({\n chainId,\n hash\n}) {\n const publicClient = getPublicClient({ chainId });\n return publicClient.getTransaction({ hash });\n}\n\n// src/actions/transactions/prepareSendTransaction.ts\nimport { isAddress } from \"viem\";\nasync function prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas: gas_,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to: to_,\n value,\n walletClient: walletClient_\n}) {\n const publicClient = getPublicClient({ chainId });\n const walletClient = walletClient_ ?? await getWalletClient({ chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (chainId)\n assertActiveChain({ chainId });\n const to = (to_ && !isAddress(to_) ? await fetchEnsAddress({ name: to_ }) : to_) || void 0;\n if (to && !isAddress(to))\n throw new Error(\"Invalid address\");\n const gas = typeof gas_ === \"undefined\" ? await publicClient.estimateGas({\n accessList,\n account: walletClient.account,\n data,\n gas: gas_ ?? void 0,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n }) : gas_ || void 0;\n return {\n accessList,\n account,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode: \"prepared\",\n nonce,\n to,\n value,\n ...chainId ? { chainId } : {}\n };\n}\n\n// src/actions/transactions/sendTransaction.ts\nasync function sendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n}) {\n const walletClient = await getWalletClient({ chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (chainId)\n assertActiveChain({ chainId });\n let args;\n if (mode === \"prepared\") {\n args = {\n account,\n accessList,\n chain: null,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n };\n } else {\n args = await prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas: gas || null,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n });\n }\n const hash = await walletClient.sendTransaction({\n ...args,\n chain: chainId ? { id: chainId } : null\n });\n return { hash };\n}\n\n// src/actions/transactions/waitForTransaction.ts\nimport { hexToString as hexToString3 } from \"viem\";\nasync function waitForTransaction({\n chainId,\n confirmations = 1,\n hash,\n onReplaced,\n timeout = 0\n}) {\n const publicClient = getPublicClient({ chainId });\n const receipt = await publicClient.waitForTransactionReceipt({\n hash,\n confirmations,\n onReplaced,\n timeout\n });\n if (receipt.status === \"reverted\") {\n const txn = await publicClient.getTransaction({\n hash: receipt.transactionHash\n });\n const code = await publicClient.call({\n ...txn,\n gasPrice: txn.type !== \"eip1559\" ? txn.gasPrice : void 0,\n maxFeePerGas: txn.type === \"eip1559\" ? txn.maxFeePerGas : void 0,\n maxPriorityFeePerGas: txn.type === \"eip1559\" ? txn.maxPriorityFeePerGas : void 0\n });\n const reason = hexToString3(`0x${code.substring(138)}`);\n throw new Error(reason);\n }\n return receipt;\n}\n\n// src/actions/transactions/watchPendingTransactions.ts\nimport { shallow as shallow6 } from \"zustand/shallow\";\nfunction watchPendingTransactions(args, callback) {\n let unwatch;\n const createListener = (publicClient) => {\n if (unwatch)\n unwatch();\n unwatch = publicClient.watchPendingTransactions({\n onTransactions: callback,\n poll: true\n });\n };\n const publicClient_ = getWebSocketPublicClient({ chainId: args.chainId }) ?? getPublicClient({ chainId: args.chainId });\n createListener(publicClient_);\n const config2 = getConfig();\n const unsubscribe = config2.subscribe(\n ({ publicClient, webSocketPublicClient }) => ({\n publicClient,\n webSocketPublicClient\n }),\n async ({ publicClient, webSocketPublicClient }) => {\n const publicClient_2 = webSocketPublicClient ?? publicClient;\n if (!args.chainId && publicClient_2) {\n createListener(publicClient_2);\n }\n },\n {\n equalityFn: shallow6\n }\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/utils/assertActiveChain.ts\nfunction assertActiveChain({ chainId }) {\n const { chain: activeChain, chains } = getNetwork();\n const activeChainId = activeChain?.id;\n if (activeChainId && chainId !== activeChainId) {\n throw new ChainMismatchError({\n activeChain: chains.find((x) => x.id === activeChainId)?.name ?? `Chain ${activeChainId}`,\n targetChain: chains.find((x) => x.id === chainId)?.name ?? `Chain ${chainId}`\n });\n }\n}\n\nexport {\n configureChains,\n ChainMismatchError,\n ChainNotConfiguredError,\n ConnectorAlreadyConnectedError,\n ConfigChainsNotFound,\n SwitchChainNotSupportedError,\n ConnectorNotFoundError,\n deepEqual,\n deserialize,\n getCallParameters,\n getSendTransactionParameters,\n getUnit,\n serialize,\n noopStorage,\n createStorage,\n Config,\n createConfig,\n getConfig,\n connect,\n disconnect,\n erc20ABI,\n erc721ABI,\n erc4626ABI,\n fetchToken,\n getPublicClient,\n getWalletClient,\n getWebSocketPublicClient,\n watchPublicClient,\n watchWalletClient,\n watchWebSocketPublicClient,\n prepareWriteContract,\n getContract,\n multicall,\n readContract,\n readContracts,\n watchContractEvent,\n watchBlockNumber,\n watchMulticall,\n watchReadContract,\n watchReadContracts,\n writeContract,\n fetchBalance,\n getAccount,\n getNetwork,\n signMessage,\n signTypedData,\n switchNetwork,\n watchAccount,\n watchNetwork,\n fetchEnsAddress,\n fetchEnsAvatar,\n fetchEnsName,\n fetchEnsResolver,\n fetchBlockNumber,\n fetchFeeData,\n fetchTransaction,\n prepareSendTransaction,\n sendTransaction,\n waitForTransaction,\n watchPendingTransactions\n};\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","\"use client\";\n\n// src/config.ts\nimport { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\nimport {\n createConfig as createCoreConfig,\n createStorage,\n noopStorage\n} from \"@wagmi/core\";\nfunction createConfig({\n queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n cacheTime: 1e3 * 60 * 60 * 24,\n networkMode: \"offlineFirst\",\n refetchOnWindowFocus: false,\n retry: 0\n },\n mutations: {\n networkMode: \"offlineFirst\"\n }\n }\n }),\n storage = createStorage({\n storage: typeof window !== \"undefined\" && window.localStorage ? window.localStorage : noopStorage\n }),\n persister = typeof window !== \"undefined\" ? createSyncStoragePersister({\n key: \"cache\",\n storage,\n serialize: (x) => x,\n deserialize: (x) => x\n }) : void 0,\n ...args\n}) {\n const config = createCoreConfig({\n ...args,\n storage\n });\n if (persister)\n persistQueryClient({\n queryClient,\n persister,\n dehydrateOptions: {\n shouldDehydrateQuery: (query) => query.cacheTime !== 0 && query.queryKey[0].persist !== false\n }\n });\n return Object.assign(config, { queryClient });\n}\n\n// src/context.ts\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport * as React from \"react\";\nvar Context = React.createContext(void 0);\nvar queryClientContext = React.createContext(\n void 0\n);\nfunction WagmiConfig({\n children,\n config\n}) {\n return React.createElement(Context.Provider, {\n children: React.createElement(QueryClientProvider, {\n children,\n client: config.queryClient,\n context: queryClientContext\n }),\n value: config\n });\n}\nfunction useConfig() {\n const config = React.useContext(Context);\n if (!config)\n throw new Error(\n [\n \"`useConfig` must be used within `WagmiConfig`.\\n\",\n \"Read more: https://wagmi.sh/react/WagmiConfig\"\n ].join(\"\\n\")\n );\n return config;\n}\n\n// src/hooks/accounts/useAccount.ts\nimport { getAccount, watchAccount } from \"@wagmi/core\";\nimport * as React9 from \"react\";\n\n// src/hooks/utils/query/useBaseQuery.ts\nimport {\n notifyManager,\n useIsRestoring,\n useQueryClient,\n useQueryErrorResetBoundary\n} from \"@tanstack/react-query\";\nimport * as React2 from \"react\";\n\n// src/hooks/utils/useSyncExternalStore.ts\nimport * as pkg from \"use-sync-external-store/shim/index.js\";\nvar useSyncExternalStore2 = pkg.useSyncExternalStore;\n\n// src/hooks/utils/query/utils.ts\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n if (typeof arg2 === \"function\") {\n return { ...arg3, queryKey: arg1, queryFn: arg2 };\n }\n return { ...arg2, queryKey: arg1 };\n}\nfunction queryKeyHashFn(queryKey17) {\n return JSON.stringify(\n queryKey17,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : typeof val === \"bigint\" ? val.toString() : val\n );\n}\nfunction shouldThrowError(_useErrorBoundary, params) {\n if (typeof _useErrorBoundary === \"function\") {\n return _useErrorBoundary(...params);\n }\n return !!_useErrorBoundary;\n}\nfunction trackResult(result, observer) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n observer.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n}\n\n// src/hooks/utils/query/useBaseQuery.ts\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({ context: options.context });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions({\n ...options,\n queryKeyHashFn\n });\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(\n defaultedOptions.onError\n );\n }\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(\n defaultedOptions.onSuccess\n );\n }\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(\n defaultedOptions.onSettled\n );\n }\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n }\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n const [observer] = React2.useState(\n () => new Observer(\n queryClient,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore2(\n React2.useCallback(\n (onStoreChange) => isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React2.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n React2.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (defaultedOptions.suspense && result.isLoading && result.isFetching && !isRestoring) {\n throw observer.fetchOptimistic(defaultedOptions).then(({ data }) => {\n defaultedOptions.onSuccess?.(data);\n defaultedOptions.onSettled?.(data, null);\n }).catch((error) => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError?.(error);\n defaultedOptions.onSettled?.(void 0, error);\n });\n }\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.useErrorBoundary, [\n result.error,\n observer.getCurrentQuery()\n ])) {\n throw result.error;\n }\n const status = result.status === \"loading\" && result.fetchStatus === \"idle\" ? \"idle\" : result.status;\n const isIdle = status === \"idle\";\n const isLoading = status === \"loading\" && result.fetchStatus === \"fetching\";\n return {\n ...result,\n defaultedOptions,\n isIdle,\n isLoading,\n observer,\n status\n };\n}\n\n// src/hooks/utils/query/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/react-query\";\nfunction useInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const baseQuery = useBaseQuery(\n { context: queryClientContext, ...parsedOptions },\n InfiniteQueryObserver\n );\n const result = {\n data: baseQuery.data,\n error: baseQuery.error,\n fetchNextPage: baseQuery.fetchNextPage,\n fetchStatus: baseQuery.fetchStatus,\n hasNextPage: baseQuery.hasNextPage,\n isError: baseQuery.isError,\n isFetched: baseQuery.isFetched,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isFetching: baseQuery.isFetching,\n isFetchingNextPage: baseQuery.isFetchingNextPage,\n isIdle: baseQuery.isIdle,\n isLoading: baseQuery.isLoading,\n isRefetching: baseQuery.isRefetching,\n isSuccess: baseQuery.isSuccess,\n refetch: baseQuery.refetch,\n status: baseQuery.status,\n internal: {\n dataUpdatedAt: baseQuery.dataUpdatedAt,\n errorUpdatedAt: baseQuery.errorUpdatedAt,\n failureCount: baseQuery.failureCount,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isLoadingError: baseQuery.isLoadingError,\n isPaused: baseQuery.isPaused,\n isPlaceholderData: baseQuery.isPlaceholderData,\n isPreviousData: baseQuery.isPreviousData,\n isRefetchError: baseQuery.isRefetchError,\n isStale: baseQuery.isStale,\n remove: baseQuery.remove\n }\n };\n return !baseQuery.defaultedOptions.notifyOnChangeProps ? trackResult(result, baseQuery.observer) : result;\n}\n\n// src/hooks/utils/query/useMutation.ts\nimport {\n parseMutationArgs,\n useMutation as useMutation_\n} from \"@tanstack/react-query\";\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n return useMutation_({ context: queryClientContext, ...options });\n}\n\n// src/hooks/utils/query/useQuery.ts\nimport { QueryObserver } from \"@tanstack/react-query\";\nfunction useQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const baseQuery = useBaseQuery({ context: queryClientContext, ...parsedOptions }, QueryObserver);\n const result = {\n data: baseQuery.data,\n error: baseQuery.error,\n fetchStatus: baseQuery.fetchStatus,\n isError: baseQuery.isError,\n isFetched: baseQuery.isFetched,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isFetching: baseQuery.isFetching,\n isIdle: baseQuery.isIdle,\n isLoading: baseQuery.isLoading,\n isRefetching: baseQuery.isRefetching,\n isSuccess: baseQuery.isSuccess,\n refetch: baseQuery.refetch,\n status: baseQuery.status,\n internal: {\n dataUpdatedAt: baseQuery.dataUpdatedAt,\n errorUpdatedAt: baseQuery.errorUpdatedAt,\n failureCount: baseQuery.failureCount,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isLoadingError: baseQuery.isLoadingError,\n isPaused: baseQuery.isPaused,\n isPlaceholderData: baseQuery.isPlaceholderData,\n isPreviousData: baseQuery.isPreviousData,\n isRefetchError: baseQuery.isRefetchError,\n isStale: baseQuery.isStale,\n remove: baseQuery.remove\n }\n };\n return !baseQuery.defaultedOptions.notifyOnChangeProps ? trackResult(result, baseQuery.observer) : result;\n}\n\n// src/hooks/utils/query/useQueryClient.ts\nimport { useQueryClient as useQueryClient_ } from \"@tanstack/react-query\";\nvar useQueryClient2 = () => useQueryClient_({ context: queryClientContext });\n\n// src/hooks/viem/usePublicClient.ts\nimport { getPublicClient, watchPublicClient } from \"@wagmi/core\";\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nfunction usePublicClient({\n chainId\n} = {}) {\n return useSyncExternalStoreWithSelector(\n (cb) => watchPublicClient({ chainId }, cb),\n () => getPublicClient({ chainId }),\n () => getPublicClient({ chainId }),\n (x) => x,\n (a, b) => a.uid === b.uid\n );\n}\n\n// src/hooks/viem/useWalletClient.ts\nimport { getWalletClient, watchWalletClient } from \"@wagmi/core\";\nimport * as React3 from \"react\";\nfunction queryKey({ chainId }) {\n return [{ entity: \"walletClient\", chainId, persist: false }];\n}\nfunction queryFn({\n queryKey: [{ chainId }]\n}) {\n return getWalletClient({ chainId });\n}\nfunction useWalletClient({\n chainId: chainId_,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const { connector } = useAccount();\n const chainId = useChainId({ chainId: chainId_ });\n const walletClientQuery = useQuery(queryKey({ chainId }), queryFn, {\n cacheTime: 0,\n enabled: Boolean(connector),\n staleTime: Infinity,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n const queryClient = useQueryClient2();\n React3.useEffect(() => {\n const unwatch = watchWalletClient({ chainId }, (walletClient) => {\n if (walletClient)\n queryClient.invalidateQueries(queryKey({ chainId }));\n else\n queryClient.removeQueries(queryKey({ chainId }));\n });\n return unwatch;\n }, [queryClient, chainId]);\n return walletClientQuery;\n}\n\n// src/hooks/viem/useWebSocketPublicClient.ts\nimport {\n getWebSocketPublicClient,\n watchWebSocketPublicClient\n} from \"@wagmi/core\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector2 } from \"use-sync-external-store/shim/with-selector.js\";\nfunction useWebSocketPublicClient({ chainId } = {}) {\n return useSyncExternalStoreWithSelector2(\n (cb) => watchWebSocketPublicClient({ chainId }, cb),\n () => getWebSocketPublicClient({ chainId }),\n () => getWebSocketPublicClient({ chainId }),\n (x) => x,\n (a, b) => a?.uid === b?.uid\n );\n}\n\n// src/hooks/utils/useChainId.ts\nfunction useChainId({ chainId } = {}) {\n const publicClient = usePublicClient({ chainId });\n return publicClient.chain.id;\n}\n\n// src/hooks/utils/useForceUpdate.ts\nimport * as React4 from \"react\";\nfunction useForceUpdate() {\n const [, forceUpdate] = React4.useReducer((x) => x + 1, 0);\n return forceUpdate;\n}\n\n// src/hooks/utils/useInvalidateOnBlock.ts\nimport * as React7 from \"react\";\n\n// src/hooks/network-status/useBlockNumber.ts\nimport { fetchBlockNumber } from \"@wagmi/core\";\nimport * as React5 from \"react\";\nfunction queryKey2({ chainId, scopeKey }) {\n return [{ entity: \"blockNumber\", chainId, scopeKey }];\n}\nfunction queryFn2({\n queryKey: [{ chainId }]\n}) {\n return fetchBlockNumber({ chainId });\n}\nfunction useBlockNumber({\n cacheTime = 0,\n chainId: chainId_,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n watch = false,\n onBlock,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n const queryClient = useQueryClient2();\n React5.useEffect(() => {\n if (!enabled)\n return;\n if (!watch && !onBlock)\n return;\n const publicClient_ = webSocketPublicClient ?? publicClient;\n const unwatch = publicClient_.watchBlockNumber({\n onBlockNumber: (blockNumber) => {\n if (watch)\n queryClient.setQueryData(queryKey2({ chainId, scopeKey }), blockNumber);\n if (onBlock)\n onBlock(blockNumber);\n },\n emitOnBegin: true\n });\n return unwatch;\n }, [\n chainId,\n scopeKey,\n onBlock,\n publicClient,\n queryClient,\n watch,\n webSocketPublicClient,\n enabled\n ]);\n return useQuery(queryKey2({ scopeKey, chainId }), queryFn2, {\n cacheTime,\n enabled,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/network-status/useFeeData.ts\nimport { fetchFeeData } from \"@wagmi/core\";\nimport * as React6 from \"react\";\nfunction queryKey3({\n chainId,\n formatUnits,\n scopeKey\n}) {\n return [{ entity: \"feeData\", chainId, formatUnits, scopeKey }];\n}\nfunction queryFn3({\n queryKey: [{ chainId, formatUnits }]\n}) {\n return fetchFeeData({ chainId, formatUnits });\n}\nfunction useFeeData({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n formatUnits = \"gwei\",\n scopeKey,\n staleTime,\n suspense,\n watch,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const queryKey_ = React6.useMemo(\n () => queryKey3({\n chainId,\n formatUnits,\n scopeKey\n }),\n [chainId, formatUnits, scopeKey]\n );\n const feeDataQuery = useQuery(queryKey_, queryFn3, {\n cacheTime,\n enabled,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch),\n queryKey: queryKey_\n });\n return feeDataQuery;\n}\n\n// src/hooks/utils/useInvalidateOnBlock.ts\nfunction useInvalidateOnBlock({\n chainId,\n enabled,\n queryKey: queryKey17\n}) {\n const queryClient = useQueryClient2();\n const onBlock = React7.useCallback(\n () => queryClient.invalidateQueries({ queryKey: queryKey17 }, { cancelRefetch: false }),\n [queryClient, queryKey17]\n );\n useBlockNumber({\n chainId,\n enabled,\n onBlock: enabled ? onBlock : void 0,\n scopeKey: enabled ? void 0 : \"idle\"\n });\n}\n\n// src/hooks/utils/useSyncExternalStoreWithTracked.ts\nimport { deepEqual } from \"@wagmi/core\";\nimport * as React8 from \"react\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector3 } from \"use-sync-external-store/shim/with-selector.js\";\nvar isPlainObject2 = (obj) => typeof obj === \"object\" && !Array.isArray(obj);\nfunction useSyncExternalStoreWithTracked(subscribe, getSnapshot, getServerSnapshot = getSnapshot, isEqual = deepEqual) {\n const trackedKeys = React8.useRef([]);\n const result = useSyncExternalStoreWithSelector3(\n subscribe,\n getSnapshot,\n getServerSnapshot,\n (x) => x,\n (a, b) => {\n if (isPlainObject2(a) && isPlainObject2(b) && trackedKeys.current.length) {\n for (const key of trackedKeys.current) {\n const equal = isEqual(\n a[key],\n b[key]\n );\n if (!equal)\n return false;\n }\n return true;\n }\n return isEqual(a, b);\n }\n );\n if (isPlainObject2(result)) {\n const trackedResult = { ...result };\n Object.defineProperties(\n trackedResult,\n Object.entries(trackedResult).reduce(\n (res, [key, value]) => {\n return {\n ...res,\n [key]: {\n configurable: false,\n enumerable: true,\n get: () => {\n if (!trackedKeys.current.includes(key)) {\n trackedKeys.current.push(key);\n }\n return value;\n }\n }\n };\n },\n {}\n )\n );\n return trackedResult;\n }\n return result;\n}\n\n// src/hooks/accounts/useAccount.ts\nfunction useAccount({ onConnect, onDisconnect } = {}) {\n const config = useConfig();\n const watchAccount_ = React9.useCallback(\n (callback) => watchAccount(callback),\n [config]\n );\n const account = useSyncExternalStoreWithTracked(watchAccount_, getAccount);\n const previousAccountRef = React9.useRef();\n const previousAccount = previousAccountRef.current;\n React9.useEffect(() => {\n if (previousAccount?.status !== \"connected\" && account.status === \"connected\") {\n onConnect?.({\n address: account.address,\n connector: account.connector,\n isReconnected: previousAccount?.status === \"reconnecting\" || previousAccount?.status === void 0\n });\n }\n if (previousAccount?.status === \"connected\" && account.status === \"disconnected\") {\n onDisconnect?.();\n }\n previousAccountRef.current = account;\n }, [onConnect, onDisconnect, previousAccount, account]);\n return account;\n}\n\n// src/hooks/accounts/useBalance.ts\nimport { fetchBalance } from \"@wagmi/core\";\nimport * as React10 from \"react\";\nfunction queryKey4({\n address,\n chainId,\n formatUnits,\n scopeKey,\n token\n}) {\n return [\n {\n entity: \"balance\",\n address,\n chainId,\n formatUnits,\n scopeKey,\n token\n }\n ];\n}\nfunction queryFn4({\n queryKey: [{ address, chainId, formatUnits, token }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchBalance({ address, chainId, formatUnits, token });\n}\nfunction useBalance({\n address,\n cacheTime,\n chainId: chainId_,\n enabled = true,\n formatUnits,\n scopeKey,\n staleTime,\n suspense,\n token,\n watch,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const queryKey_ = React10.useMemo(\n () => queryKey4({ address, chainId, formatUnits, scopeKey, token }),\n [address, chainId, formatUnits, scopeKey, token]\n );\n const balanceQuery = useQuery(queryKey_, queryFn4, {\n cacheTime,\n enabled: Boolean(enabled && address),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch && address),\n queryKey: queryKey_\n });\n return balanceQuery;\n}\n\n// src/hooks/accounts/useConnect.ts\nimport { connect } from \"@wagmi/core\";\nimport * as React11 from \"react\";\nvar mutationKey = (args) => [{ entity: \"connect\", ...args }];\nvar mutationFn = (args) => {\n const { connector, chainId } = args;\n if (!connector)\n throw new Error(\"connector is required\");\n return connect({ connector, chainId });\n};\nfunction useConnect({\n chainId,\n connector,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const config = useConfig();\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey({ connector, chainId }), mutationFn, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const connect2 = React11.useCallback(\n (args) => {\n return mutate({\n chainId: args?.chainId ?? chainId,\n connector: args?.connector ?? connector\n });\n },\n [chainId, connector, mutate]\n );\n const connectAsync = React11.useCallback(\n (args) => {\n return mutateAsync({\n chainId: args?.chainId ?? chainId,\n connector: args?.connector ?? connector\n });\n },\n [chainId, connector, mutateAsync]\n );\n return {\n connect: connect2,\n connectAsync,\n connectors: config.connectors,\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n pendingConnector: variables?.connector,\n reset,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useDisconnect.ts\nimport { disconnect } from \"@wagmi/core\";\nvar mutationKey2 = [{ entity: \"disconnect\" }];\nvar mutationFn2 = () => disconnect();\nfunction useDisconnect({\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate: disconnect2,\n mutateAsync: disconnectAsync,\n reset,\n status\n } = useMutation(mutationKey2, mutationFn2, {\n ...onError ? {\n onError(error2, _variables, context) {\n onError(error2, context);\n }\n } : {},\n onMutate,\n ...onSettled ? {\n onSettled(_data, error2, _variables, context) {\n onSettled(error2, context);\n }\n } : {},\n ...onSuccess ? {\n onSuccess(_data, _variables, context) {\n onSuccess(context);\n }\n } : {}\n });\n return {\n disconnect: disconnect2,\n disconnectAsync,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n status\n };\n}\n\n// src/hooks/accounts/useNetwork.ts\nimport { getNetwork, watchNetwork } from \"@wagmi/core\";\nimport { useCallback as useCallback5 } from \"react\";\nfunction useNetwork() {\n const config = useConfig();\n const watchNetwork_ = useCallback5(\n (callback) => watchNetwork(callback),\n [config]\n );\n return useSyncExternalStoreWithTracked(watchNetwork_, getNetwork);\n}\n\n// src/hooks/accounts/useSignMessage.ts\nimport { signMessage } from \"@wagmi/core\";\nimport * as React12 from \"react\";\nvar mutationKey3 = (args) => [{ entity: \"signMessage\", ...args }];\nvar mutationFn3 = (args) => {\n const { message } = args;\n if (!message)\n throw new Error(\"message is required\");\n return signMessage({ message });\n};\nfunction useSignMessage({\n message,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey3({ message }), mutationFn3, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const signMessage2 = React12.useCallback(\n (args) => mutate(args || { message }),\n [message, mutate]\n );\n const signMessageAsync = React12.useCallback(\n (args) => mutateAsync(args || { message }),\n [message, mutateAsync]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n signMessage: signMessage2,\n signMessageAsync,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useSignTypedData.ts\nimport { signTypedData } from \"@wagmi/core\";\nimport * as React13 from \"react\";\nfunction mutationKey4({ domain, types, message, primaryType }) {\n return [\n { entity: \"signTypedData\", domain, types, message, primaryType }\n ];\n}\nfunction mutationFn4(args) {\n const { domain, types, primaryType, message } = args;\n if (!domain)\n throw new Error(\"domain is required\");\n if (!types)\n throw new Error(\"types is required\");\n if (!primaryType)\n throw new Error(\"primaryType is required\");\n if (!message)\n throw new Error(\"message is required\");\n return signTypedData({\n domain,\n message,\n primaryType,\n types\n });\n}\nfunction useSignTypedData({\n domain,\n types,\n message,\n primaryType,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey4({\n domain,\n message,\n primaryType,\n types\n }),\n mutationFn4,\n {\n onError,\n onMutate,\n onSettled,\n onSuccess\n }\n );\n const signTypedData2 = React13.useCallback(\n (args) => mutate({\n domain: args?.domain ?? domain,\n types: args?.types ?? types,\n message: args?.message ?? message,\n primaryType: args?.primaryType ?? primaryType\n }),\n [domain, types, primaryType, message, mutate]\n );\n const signTypedDataAsync = React13.useCallback(\n (args) => mutateAsync({\n domain: args?.domain ?? domain,\n types: args?.types ?? types,\n message: args?.message ?? message,\n primaryType: args?.primaryType ?? primaryType\n }),\n [domain, types, primaryType, message, mutateAsync]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n signTypedData: signTypedData2,\n signTypedDataAsync,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useSwitchNetwork.ts\nimport { switchNetwork } from \"@wagmi/core\";\nimport * as React14 from \"react\";\nvar mutationKey5 = (args) => [{ entity: \"switchNetwork\", ...args }];\nvar mutationFn5 = (args) => {\n const { chainId } = args;\n if (!chainId)\n throw new Error(\"chainId is required\");\n return switchNetwork({ chainId });\n};\nfunction useSwitchNetwork({\n chainId,\n throwForSwitchChainNotSupported,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const config = useConfig();\n const forceUpdate = useForceUpdate();\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey5({ chainId }), mutationFn5, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const switchNetwork_ = React14.useCallback(\n (chainId_) => mutate({ chainId: chainId_ ?? chainId }),\n [chainId, mutate]\n );\n const switchNetworkAsync_ = React14.useCallback(\n (chainId_) => mutateAsync({ chainId: chainId_ ?? chainId }),\n [chainId, mutateAsync]\n );\n React14.useEffect(() => {\n const unwatch = config.subscribe(\n ({ chains, connector }) => ({\n chains,\n connector\n }),\n forceUpdate\n );\n return unwatch;\n }, [config, forceUpdate]);\n let switchNetwork2;\n let switchNetworkAsync;\n const supportsSwitchChain = !!config.connector?.switchChain;\n if (throwForSwitchChainNotSupported || supportsSwitchChain) {\n switchNetwork2 = switchNetwork_;\n switchNetworkAsync = switchNetworkAsync_;\n }\n return {\n chains: config.chains ?? [],\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n pendingChainId: variables?.chainId,\n reset,\n status,\n switchNetwork: switchNetwork2,\n switchNetworkAsync,\n variables\n };\n}\n\n// src/hooks/contracts/useContractEvent.ts\nimport * as React15 from \"react\";\nfunction useContractEvent({\n address,\n chainId,\n abi,\n listener,\n eventName\n} = {}) {\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n const unwatch = React15.useRef();\n React15.useEffect(() => {\n if (!abi || !address || !eventName)\n return;\n const publicClient_ = webSocketPublicClient || publicClient;\n unwatch.current = publicClient_.watchContractEvent({\n abi,\n address,\n eventName,\n onLogs: listener\n });\n return unwatch.current;\n }, [abi, address, eventName, publicClient.uid, webSocketPublicClient?.uid]);\n return unwatch.current;\n}\n\n// src/hooks/contracts/useContractInfiniteReads.ts\nimport { replaceEqualDeep } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual2, readContracts } from \"@wagmi/core\";\nimport * as React16 from \"react\";\nfunction queryKey5({\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n scopeKey\n}) {\n return [\n {\n entity: \"readContractsInfinite\",\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n scopeKey\n }\n ];\n}\nfunction queryFn5({\n contracts\n}) {\n return ({\n queryKey: [{ allowFailure, blockNumber, blockTag }],\n pageParam\n }) => {\n return readContracts({\n allowFailure,\n blockNumber,\n blockTag,\n contracts: contracts(pageParam || void 0)\n });\n };\n}\nfunction useContractInfiniteReads({\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n cacheTime,\n contracts,\n enabled: enabled_ = true,\n getNextPageParam,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual2(oldData, newData) ? oldData : replaceEqualDeep(oldData, newData),\n suspense\n}) {\n const queryKey_ = React16.useMemo(\n () => queryKey5({ allowFailure, blockNumber, blockTag, cacheKey, scopeKey }),\n [allowFailure, blockNumber, blockTag, cacheKey, scopeKey]\n );\n const enabled = React16.useMemo(() => {\n const enabled2 = Boolean(enabled_ && contracts);\n return enabled2;\n }, [contracts, enabled_]);\n return useInfiniteQuery(queryKey_, queryFn5({ contracts }), {\n cacheTime,\n enabled,\n getNextPageParam,\n isDataEqual,\n keepPreviousData,\n select,\n staleTime,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\nfunction paginatedIndexesConfig(fn, {\n perPage,\n start,\n direction\n}) {\n const contracts = (page = 0) => [...Array(perPage).keys()].map((index) => {\n return direction === \"increment\" ? start + index + page * perPage : start - index - page * perPage;\n }).filter((index) => index >= 0).flatMap(fn);\n return {\n contracts,\n getNextPageParam(lastPage, pages) {\n return lastPage?.length === perPage ? pages.length : void 0;\n }\n };\n}\n\n// src/hooks/contracts/useContractRead.ts\nimport { replaceEqualDeep as replaceEqualDeep2 } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual3, readContract } from \"@wagmi/core\";\nimport * as React17 from \"react\";\nfunction queryKey6({\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n scopeKey\n}) {\n return [\n {\n entity: \"readContract\",\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n scopeKey\n }\n ];\n}\nfunction queryFn6({ abi }) {\n return async ({\n queryKey: [\n { account, address, args, blockNumber, blockTag, chainId, functionName }\n ]\n }) => {\n if (!abi)\n throw new Error(\"abi is required\");\n if (!address)\n throw new Error(\"address is required\");\n return await readContract({\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n abi,\n functionName\n }) ?? null;\n };\n}\nfunction useContractRead({\n abi,\n address,\n account,\n args,\n blockNumber: blockNumberOverride,\n blockTag,\n cacheOnBlock = false,\n cacheTime,\n chainId: chainId_,\n enabled: enabled_ = true,\n functionName,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual3(oldData, newData) ? oldData : replaceEqualDeep2(oldData, newData),\n suspense,\n watch\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const { data: blockNumber_ } = useBlockNumber({\n chainId,\n enabled: watch || cacheOnBlock,\n scopeKey: watch || cacheOnBlock ? void 0 : \"idle\",\n watch\n });\n const blockNumber = blockNumberOverride ?? blockNumber_;\n const queryKey_ = React17.useMemo(\n () => queryKey6({\n account,\n address,\n args,\n blockNumber: cacheOnBlock ? blockNumber : void 0,\n blockTag,\n chainId,\n functionName,\n scopeKey\n }),\n [\n account,\n address,\n args,\n blockNumber,\n blockTag,\n cacheOnBlock,\n chainId,\n functionName,\n scopeKey\n ]\n );\n const enabled = React17.useMemo(() => {\n let enabled2 = Boolean(enabled_ && abi && address && functionName);\n if (cacheOnBlock)\n enabled2 = Boolean(enabled2 && blockNumber);\n return enabled2;\n }, [abi, address, blockNumber, cacheOnBlock, enabled_, functionName]);\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch && !cacheOnBlock),\n queryKey: queryKey_\n });\n return useQuery(\n queryKey_,\n queryFn6({\n abi\n }),\n {\n cacheTime,\n enabled,\n isDataEqual,\n keepPreviousData,\n select,\n staleTime,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/contracts/useContractReads.ts\nimport { replaceEqualDeep as replaceEqualDeep3 } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual4, readContracts as readContracts2 } from \"@wagmi/core\";\nimport * as React18 from \"react\";\nfunction queryKey7({\n allowFailure,\n blockNumber,\n blockTag,\n chainId,\n contracts,\n scopeKey\n}) {\n return [\n {\n entity: \"readContracts\",\n allowFailure,\n blockNumber,\n blockTag,\n chainId,\n scopeKey,\n contracts: (contracts ?? []).map(({ address, args, chainId: chainId2, functionName }) => ({\n address,\n args,\n chainId: chainId2,\n functionName\n }))\n }\n ];\n}\nfunction queryFn7({ abis }) {\n return ({\n queryKey: [{ allowFailure, blockNumber, blockTag, contracts: contracts_ }]\n }) => {\n const contracts = contracts_.map((contract, i) => ({\n ...contract,\n abi: abis[i]\n }));\n return readContracts2({\n allowFailure,\n contracts,\n blockNumber,\n blockTag\n });\n };\n}\nfunction useContractReads({\n allowFailure: allowFailure_,\n blockNumber: blockNumberOverride,\n blockTag,\n cacheOnBlock = false,\n cacheTime,\n contracts,\n enabled: enabled_ = true,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual4(oldData, newData) ? oldData : replaceEqualDeep3(oldData, newData),\n suspense,\n watch\n} = {}) {\n const allowFailure = allowFailure_ ?? true;\n const { data: blockNumber_ } = useBlockNumber({\n enabled: watch || cacheOnBlock,\n watch\n });\n const chainId = useChainId();\n const blockNumber = blockNumberOverride ?? blockNumber_;\n const queryKey_ = React18.useMemo(\n () => queryKey7({\n allowFailure,\n blockNumber: cacheOnBlock ? blockNumber : void 0,\n blockTag,\n chainId,\n contracts,\n scopeKey\n }),\n [\n allowFailure,\n blockNumber,\n blockTag,\n cacheOnBlock,\n chainId,\n scopeKey,\n contracts\n ]\n );\n const enabled = React18.useMemo(() => {\n let enabled2 = Boolean(\n enabled_ && contracts?.every(\n (x) => x.abi && x.address && x.functionName\n )\n );\n if (cacheOnBlock)\n enabled2 = Boolean(enabled2 && blockNumber);\n return enabled2;\n }, [blockNumber, cacheOnBlock, contracts, enabled_]);\n useInvalidateOnBlock({\n enabled: Boolean(enabled && watch && !cacheOnBlock),\n queryKey: queryKey_\n });\n const abis = (contracts ?? []).map(\n ({ abi }) => abi\n );\n return useQuery(queryKey_, queryFn7({ abis }), {\n cacheTime,\n enabled,\n isDataEqual,\n keepPreviousData,\n staleTime,\n select,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/contracts/useContractWrite.ts\nimport { writeContract } from \"@wagmi/core\";\nimport { getSendTransactionParameters } from \"@wagmi/core/internal\";\nimport * as React19 from \"react\";\nfunction mutationKey6({\n address,\n abi,\n functionName,\n ...config\n}) {\n const {\n args,\n accessList,\n account,\n dataSuffix,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n } = config;\n return [\n {\n entity: \"writeContract\",\n address,\n args,\n abi,\n accessList,\n account,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n }\n ];\n}\nfunction mutationFn6(config) {\n if (config.mode === \"prepared\") {\n if (!config.request)\n throw new Error(\"request is required\");\n return writeContract({\n mode: \"prepared\",\n request: config.request\n });\n }\n if (!config.address)\n throw new Error(\"address is required\");\n if (!config.abi)\n throw new Error(\"abi is required\");\n if (!config.functionName)\n throw new Error(\"functionName is required\");\n return writeContract({\n address: config.address,\n args: config.args,\n chainId: config.chainId,\n abi: config.abi,\n functionName: config.functionName,\n accessList: config.accessList,\n account: config.account,\n dataSuffix: config.dataSuffix,\n gas: config.gas,\n gasPrice: config.gasPrice,\n maxFeePerGas: config.maxFeePerGas,\n maxPriorityFeePerGas: config.maxPriorityFeePerGas,\n nonce: config.nonce,\n value: config.value\n });\n}\nfunction useContractWrite(config) {\n const {\n address,\n abi,\n args,\n chainId,\n functionName,\n mode,\n request,\n dataSuffix\n } = config;\n const {\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getSendTransactionParameters(config);\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey6({\n address,\n abi,\n functionName,\n chainId,\n mode,\n args,\n accessList,\n account,\n dataSuffix,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n }),\n mutationFn6,\n {\n onError: config.onError,\n onMutate: config.onMutate,\n onSettled: config.onSettled,\n onSuccess: config.onSuccess\n }\n );\n const write = React19.useMemo(() => {\n if (config.mode === \"prepared\") {\n if (!request)\n return void 0;\n return () => mutate({\n mode: \"prepared\",\n request: config.request,\n chainId: config.chainId\n });\n }\n return (overrideConfig) => mutate({\n address,\n args,\n abi,\n functionName,\n chainId,\n accessList,\n account,\n dataSuffix,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...overrideConfig\n });\n }, [\n accessList,\n account,\n abi,\n address,\n args,\n chainId,\n config.chainId,\n config.mode,\n config.request,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mutate,\n nonce,\n request,\n value\n ]);\n const writeAsync = React19.useMemo(() => {\n if (config.mode === \"prepared\") {\n if (!request)\n return void 0;\n return () => mutateAsync({\n mode: \"prepared\",\n request: config.request\n });\n }\n return (overrideConfig) => mutateAsync({\n address,\n args,\n abi,\n chainId,\n functionName,\n accessList,\n account,\n dataSuffix,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...overrideConfig\n });\n }, [\n accessList,\n account,\n abi,\n address,\n args,\n chainId,\n config.mode,\n config.request,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mutateAsync,\n nonce,\n request,\n value\n ]);\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n status,\n variables,\n write,\n writeAsync\n };\n}\n\n// src/hooks/contracts/usePrepareContractWrite.ts\nimport { prepareWriteContract } from \"@wagmi/core\";\nimport { getCallParameters } from \"@wagmi/core/internal\";\nfunction queryKey8({\n accessList,\n account,\n activeChainId,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress,\n value\n}) {\n return [\n {\n entity: \"prepareContractTransaction\",\n accessList,\n account,\n activeChainId,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress,\n value\n }\n ];\n}\nfunction queryFn8({\n abi,\n walletClient\n}) {\n return ({\n queryKey: [\n {\n accessList,\n account,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n }\n ]\n }) => {\n if (!abi)\n throw new Error(\"abi is required\");\n if (!address)\n throw new Error(\"address is required\");\n if (!functionName)\n throw new Error(\"functionName is required\");\n return prepareWriteContract({\n abi,\n accessList,\n account,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n walletClient,\n value\n });\n };\n}\nfunction usePrepareContractWrite({\n address,\n abi,\n functionName,\n chainId,\n args,\n cacheTime,\n dataSuffix,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess,\n ...config\n} = {}) {\n const { chain: activeChain } = useNetwork();\n const { data: walletClient } = useWalletClient({ chainId });\n const {\n accessList,\n account,\n blockNumber,\n blockTag,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getCallParameters(config);\n const prepareContractWriteQuery = useQuery(\n queryKey8({\n accessList,\n account,\n activeChainId: activeChain?.id,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n dataSuffix,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress: walletClient?.account.address,\n value\n }),\n queryFn8({\n abi,\n walletClient\n }),\n {\n cacheTime,\n enabled: Boolean(\n enabled && abi && address && functionName && walletClient\n ),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n return Object.assign(prepareContractWriteQuery, {\n config: {\n chainId,\n mode: \"prepared\",\n request: void 0,\n ...prepareContractWriteQuery.data\n }\n });\n}\n\n// src/hooks/contracts/useToken.ts\nimport { fetchToken } from \"@wagmi/core\";\nfunction queryKey9({\n address,\n chainId,\n formatUnits,\n scopeKey\n}) {\n return [{ entity: \"token\", address, chainId, formatUnits, scopeKey }];\n}\nfunction queryFn9({\n queryKey: [{ address, chainId, formatUnits }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchToken({ address, chainId, formatUnits });\n}\nfunction useToken({\n address,\n chainId: chainId_,\n formatUnits = \"ether\",\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(\n queryKey9({ address, chainId, formatUnits, scopeKey }),\n queryFn9,\n {\n cacheTime,\n enabled: Boolean(enabled && address),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/ens/useEnsAddress.ts\nimport { fetchEnsAddress } from \"@wagmi/core\";\nfunction queryKey10({ chainId, name, scopeKey }) {\n return [{ entity: \"ensAddress\", chainId, name, scopeKey }];\n}\nfunction queryFn10({\n queryKey: [{ chainId, name }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsAddress({ chainId, name });\n}\nfunction useEnsAddress({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n name,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey10({ chainId, name, scopeKey }), queryFn10, {\n cacheTime,\n enabled: Boolean(enabled && chainId && name),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsAvatar.ts\nimport { fetchEnsAvatar } from \"@wagmi/core\";\nfunction queryKey11({ name, chainId, scopeKey }) {\n return [{ entity: \"ensAvatar\", name, chainId, scopeKey }];\n}\nfunction queryFn11({\n queryKey: [{ name, chainId }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsAvatar({ name, chainId });\n}\nfunction useEnsAvatar({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n name,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey11({ name, chainId, scopeKey }), queryFn11, {\n cacheTime,\n enabled: Boolean(enabled && name && chainId),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsName.ts\nimport { fetchEnsName } from \"@wagmi/core\";\nfunction queryKey12({\n address,\n chainId,\n scopeKey\n}) {\n return [{ entity: \"ensName\", address, chainId, scopeKey }];\n}\nfunction queryFn12({\n queryKey: [{ address, chainId }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchEnsName({ address, chainId });\n}\nfunction useEnsName({\n address,\n cacheTime,\n chainId: chainId_,\n enabled = true,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey12({ address, chainId, scopeKey }), queryFn12, {\n cacheTime,\n enabled: Boolean(enabled && address && chainId),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsResolver.ts\nimport { fetchEnsResolver } from \"@wagmi/core\";\nfunction queryKey13({ chainId, name, scopeKey }) {\n return [\n { entity: \"ensResolver\", chainId, name, scopeKey, persist: false }\n ];\n}\nfunction queryFn13({\n queryKey: [{ chainId, name }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsResolver({ chainId, name });\n}\nfunction useEnsResolver({\n chainId: chainId_,\n name,\n enabled = true,\n scopeKey,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey13({ chainId, name, scopeKey }), queryFn13, {\n cacheTime: 0,\n enabled: Boolean(enabled && chainId && name),\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/transactions/usePrepareSendTransaction.ts\nimport { prepareSendTransaction } from \"@wagmi/core\";\nfunction queryKey14({\n accessList,\n account,\n activeChainId,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n scopeKey,\n walletClientAddress\n}) {\n return [\n {\n entity: \"prepareSendTransaction\",\n activeChainId,\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n scopeKey,\n walletClientAddress\n }\n ];\n}\nfunction queryFn14({ walletClient }) {\n return ({\n queryKey: [\n {\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n }\n ]\n }) => {\n if (!to)\n throw new Error(\"to is required\");\n return prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n walletClient\n });\n };\n}\nfunction usePrepareSendTransaction({\n accessList,\n account,\n chainId,\n cacheTime,\n data,\n enabled = true,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n staleTime,\n suspense,\n to,\n value,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const { chain: activeChain } = useNetwork();\n const { data: walletClient } = useWalletClient({ chainId });\n const prepareSendTransactionQuery = useQuery(\n queryKey14({\n accessList,\n activeChainId: activeChain?.id,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n to,\n value,\n walletClientAddress: walletClient?.account.address\n }),\n queryFn14({ walletClient }),\n {\n cacheTime,\n enabled: Boolean(enabled && walletClient && to),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n return Object.assign(prepareSendTransactionQuery, {\n config: {\n mode: \"prepared\",\n ...prepareSendTransactionQuery.isSuccess ? prepareSendTransactionQuery.data : void 0\n }\n });\n}\n\n// src/hooks/transactions/useSendTransaction.ts\nimport { sendTransaction } from \"@wagmi/core\";\nimport * as React20 from \"react\";\nvar mutationKey7 = (args) => [{ entity: \"sendTransaction\", ...args }];\nvar mutationFn7 = ({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n}) => {\n if (!to)\n throw new Error(\"to is required.\");\n return sendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n });\n};\nfunction useSendTransaction({\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey7({\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n }),\n mutationFn7,\n {\n onError,\n onMutate,\n onSettled,\n onSuccess\n }\n );\n const sendTransaction2 = React20.useCallback(\n (args) => mutate({\n chainId,\n mode,\n ...args || {\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n value,\n to\n }\n }),\n [\n accessList,\n account,\n chainId,\n data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n mutate,\n nonce,\n to,\n value\n ]\n );\n const sendTransactionAsync = React20.useCallback(\n (args) => mutateAsync({\n chainId,\n mode,\n ...args || {\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n value,\n to\n }\n }),\n [\n accessList,\n account,\n chainId,\n data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n mutateAsync,\n nonce,\n to,\n value\n ]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n sendTransaction: mode === \"prepared\" && !to ? void 0 : sendTransaction2,\n sendTransactionAsync: mode === \"prepared\" && !to ? void 0 : sendTransactionAsync,\n status,\n variables\n };\n}\n\n// src/hooks/transactions/useTransaction.ts\nimport { fetchTransaction } from \"@wagmi/core\";\nfunction queryKey15({ chainId, hash, scopeKey }) {\n return [{ entity: \"transaction\", chainId, hash, scopeKey }];\n}\nfunction queryFn15({\n queryKey: [{ chainId, hash }]\n}) {\n if (!hash)\n throw new Error(\"hash is required\");\n return fetchTransaction({ chainId, hash });\n}\nfunction useTransaction({\n cacheTime = 0,\n chainId: chainId_,\n enabled = true,\n hash,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey15({ chainId, hash, scopeKey }), queryFn15, {\n cacheTime,\n enabled: Boolean(enabled && hash),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/transactions/useWaitForTransaction.ts\nimport { waitForTransaction } from \"@wagmi/core\";\nfunction queryKey16({\n confirmations,\n chainId,\n hash,\n scopeKey,\n timeout\n}) {\n return [\n {\n entity: \"waitForTransaction\",\n confirmations,\n chainId,\n hash,\n scopeKey,\n timeout\n }\n ];\n}\nfunction queryFn16({\n onReplaced\n}) {\n return ({\n queryKey: [{ chainId, confirmations, hash, timeout }]\n }) => {\n if (!hash)\n throw new Error(\"hash is required\");\n return waitForTransaction({\n chainId,\n confirmations,\n hash,\n onReplaced,\n timeout\n });\n };\n}\nfunction useWaitForTransaction({\n chainId: chainId_,\n confirmations,\n hash,\n timeout,\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onReplaced,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(\n queryKey16({ chainId, confirmations, hash, scopeKey, timeout }),\n queryFn16({ onReplaced }),\n {\n cacheTime,\n enabled: Boolean(enabled && hash),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/transactions/useWatchPendingTransactions.ts\nimport * as React21 from \"react\";\nfunction useWatchPendingTransactions({\n chainId: chainId_,\n enabled = true,\n listener\n}) {\n const chainId = useChainId({ chainId: chainId_ });\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n React21.useEffect(() => {\n if (!enabled)\n return;\n const publicClient_ = webSocketPublicClient ?? publicClient;\n return publicClient_.watchPendingTransactions({\n onTransactions: listener\n });\n }, [enabled, listener, publicClient, webSocketPublicClient]);\n}\n\n// src/index.ts\nimport {\n ChainMismatchError,\n ChainNotConfiguredError,\n Connector,\n ConnectorAlreadyConnectedError,\n ConnectorNotFoundError,\n ConfigChainsNotFound,\n SwitchChainNotSupportedError,\n configureChains,\n createStorage as createStorage2,\n deepEqual as deepEqual5,\n deserialize,\n erc20ABI,\n erc721ABI,\n erc4626ABI,\n readContracts as readContracts3,\n serialize\n} from \"@wagmi/core\";\nimport { mainnet, sepolia } from \"viem/chains\";\nexport {\n ChainMismatchError,\n ChainNotConfiguredError,\n ConfigChainsNotFound,\n Connector,\n ConnectorAlreadyConnectedError,\n ConnectorNotFoundError,\n Context,\n SwitchChainNotSupportedError,\n WagmiConfig,\n configureChains,\n createConfig,\n createStorage2 as createStorage,\n deepEqual5 as deepEqual,\n deserialize,\n erc20ABI,\n erc4626ABI,\n erc721ABI,\n mainnet,\n paginatedIndexesConfig,\n readContracts3 as readContracts,\n sepolia,\n serialize,\n useAccount,\n useBalance,\n useBlockNumber,\n useChainId,\n useConfig,\n useConnect,\n useContractEvent,\n useContractInfiniteReads,\n useContractRead,\n useContractReads,\n useContractWrite,\n useDisconnect,\n useEnsAddress,\n useEnsAvatar,\n useEnsName,\n useEnsResolver,\n useFeeData,\n useInfiniteQuery,\n useMutation,\n useNetwork,\n usePrepareContractWrite,\n usePrepareSendTransaction,\n usePublicClient,\n useQuery,\n useQueryClient2 as useQueryClient,\n useSendTransaction,\n useSignMessage,\n useSignTypedData,\n useSwitchNetwork,\n useToken,\n useTransaction,\n useWaitForTransaction,\n useWalletClient,\n useWatchPendingTransactions,\n useWebSocketPublicClient\n};\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Buffer$1 = buffer.Buffer;\nexport { Buffer$1 as Buffer, Buffer as default };\n//# sourceMappingURL=index.js.map\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n },\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","/*globals self, window */\n\"use strict\"\n\n/*eslint-disable @mysticatea/prettier */\nconst { AbortController, AbortSignal } =\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nmodule.exports = AbortController\nmodule.exports.AbortSignal = AbortSignal\nmodule.exports.default = AbortController\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > 2n ** 32n || input < -(2n ** 32n)) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict';\n\nObject.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexports.default = process$1;\nexports.process = process$1;\n//# sourceMappingURL=index.cjs.map\n","'use strict'\n\nconst { Symbol, SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\nconst kDestroyed = Symbol('kDestroyed')\nconst kIsErrored = Symbol('kIsErrored')\nconst kIsReadable = Symbol('kIsReadable')\nconst kIsDisturbed = Symbol('kIsDisturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\n\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\n\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n kDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n isClosed,\n isDestroyed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n const originalCallback = callback\n callback = once((...args) => {\n options.signal.removeEventListener('abort', abort)\n originalCallback.apply(stream, args)\n })\n options.signal.addEventListener('abort', abort)\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n signal.addEventListener('abort', onAbort)\n eos(stream, () => signal.removeEventListener('abort', onAbort))\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n }\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.readableObjectMode)\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this.ended = false\n this.endEmitted = false\n this.reading = false\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true\n\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false\n this.emittedReadable = false\n this.readableListening = false\n this.resumeScheduled = false\n this[kPaused] = null\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Has it been destroyed.\n this.destroyed = false\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.multiAwaitDrain = false\n\n // If true, a maybeReadMore has been scheduled.\n this.readingMore = false\n this.dataEmitted = false\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.reading = false\n onEofChunk(stream, state)\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.reading = false\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.reading = false\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if (state.needReadable) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if (state.objectMode) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.emittedReadable = false\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = state.needReadable\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.reading = true\n state.sync = true\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.sync = false\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause()\n }\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n\n // TODO: Webstreams\n // if (isReadableStream(body)) {\n // return _duplexify({ readable: Readable.fromWeb(body) });\n // }\n\n // TODO: Webstreams\n // if (isWritableStream(body)) {\n // return _duplexify({ writable: Writable.fromWeb(body) });\n // }\n\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n\n // TODO: Webstreams.\n // if (\n // isReadableStream(body?.readable) &&\n // isWritableStream(body?.writable)\n // ) {\n // return Duplexify.fromWeb(body);\n // }\n\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableEnded\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n }\n await wait()\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.addEventListener('abort', abort)\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n outerSignal === null || outerSignal === undefined ? undefined : outerSignal.removeEventListener('abort', abort)\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableEnded(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.writableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst {\n ArrayPrototypePush,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n validateInteger(concurrency, 'concurrency', 1)\n return async function* map() {\n var _options$signal, _options$signal2\n const ac = new AbortController()\n const stream = this\n const queue = []\n const signal = ac.signal\n const signalOpt = {\n signal\n }\n const abort = () => ac.abort()\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n abort()\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal2 = options.signal) === null || _options$signal2 === undefined\n ? undefined\n : _options$signal2.addEventListener('abort', abort)\n let next\n let resume\n let done = false\n function onDone() {\n done = true\n }\n async function pump() {\n try {\n for await (let val of stream) {\n var _val\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n } catch (err) {\n val = PromiseReject(err)\n }\n if (val === kEmpty) {\n continue\n }\n if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') {\n val.catch(onDone)\n }\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && queue.length && queue.length >= concurrency) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, undefined, onDone)\n queue.push(val)\n } finally {\n var _options$signal3\n done = true\n if (next) {\n next()\n next = null\n }\n options === null || options === undefined\n ? undefined\n : (_options$signal3 = options.signal) === null || _options$signal3 === undefined\n ? undefined\n : _options$signal3.removeEventListener('abort', abort)\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n if (resume) {\n resume()\n resume = null\n }\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n ac.abort()\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal5\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal6\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal9\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal9 = options.signal) !== null &&\n _options$signal9 !== undefined &&\n _options$signal9.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal10\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal10 = options.signal) !== null &&\n _options$signal10 !== undefined &&\n _options$signal10.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal11\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal11 = options.signal) !== null &&\n _options$signal11 !== undefined &&\n _options$signal11.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n } else {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs,\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/misc.ts\nfunction isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\nfunction isNullOrUndefined(value) {\n return value === null || value === void 0;\n}\nfunction isObject(value) {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\nvar hasProperty = (objectToCheck, name) => Object.hasOwnProperty.call(objectToCheck, name);\nfunction getKnownPropertyNames(object) {\n return Object.getOwnPropertyNames(object);\n}\nvar JsonSize = /* @__PURE__ */ ((JsonSize2) => {\n JsonSize2[JsonSize2[\"Null\"] = 4] = \"Null\";\n JsonSize2[JsonSize2[\"Comma\"] = 1] = \"Comma\";\n JsonSize2[JsonSize2[\"Wrapper\"] = 1] = \"Wrapper\";\n JsonSize2[JsonSize2[\"True\"] = 4] = \"True\";\n JsonSize2[JsonSize2[\"False\"] = 5] = \"False\";\n JsonSize2[JsonSize2[\"Quote\"] = 1] = \"Quote\";\n JsonSize2[JsonSize2[\"Colon\"] = 1] = \"Colon\";\n JsonSize2[JsonSize2[\"Date\"] = 24] = \"Date\";\n return JsonSize2;\n})(JsonSize || {});\nvar ESCAPE_CHARACTERS_REGEXP = /\"|\\\\|\\n|\\r|\\t/gu;\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n try {\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n } catch (_) {\n return false;\n }\n}\nfunction isASCII(character) {\n return character.charCodeAt(0) <= 127;\n}\nfunction calculateStringSize(value) {\n const size = value.split(\"\").reduce((total, character) => {\n if (isASCII(character)) {\n return total + 1;\n }\n return total + 2;\n }, 0);\n return size + (_nullishCoalesce(value.match(ESCAPE_CHARACTERS_REGEXP), () => ( []))).length;\n}\nfunction calculateNumberSize(value) {\n return value.toString().length;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\nexports.isNonEmptyArray = isNonEmptyArray; exports.isNullOrUndefined = isNullOrUndefined; exports.isObject = isObject; exports.hasProperty = hasProperty; exports.getKnownPropertyNames = getKnownPropertyNames; exports.JsonSize = JsonSize; exports.ESCAPE_CHARACTERS_REGEXP = ESCAPE_CHARACTERS_REGEXP; exports.isPlainObject = isPlainObject; exports.isASCII = isASCII; exports.calculateStringSize = calculateStringSize; exports.calculateNumberSize = calculateNumberSize;\n//# sourceMappingURL=chunk-QVEKZRZ2.js.map","'use strict';\n\n/** @template [T=undefined] */\nexport class ErrorWithCause extends Error {\n /**\n * @param {string} message\n * @param {{ cause?: T }} options\n */\n constructor (message, { cause } = {}) {\n super(message);\n\n /** @type {string} */\n this.name = ErrorWithCause.name;\n if (cause) {\n /** @type {T} */\n this.cause = cause;\n }\n /** @type {string} */\n this.message = message;\n }\n}\n","'use strict';\n\n/**\n * @template {Error} T\n * @param {unknown} err\n * @param {new(...args: any[]) => T} reference\n * @returns {T|undefined}\n */\nexport const findCauseByReference = (err, reference) => {\n if (!err || !reference) return;\n if (!(err instanceof Error)) return;\n if (\n !(reference.prototype instanceof Error) &&\n // @ts-ignore\n reference !== Error\n ) return;\n\n /**\n * Ensures we don't go circular\n *\n * @type {Set}\n */\n const seen = new Set();\n\n /** @type {Error|undefined} */\n let currentErr = err;\n\n while (currentErr && !seen.has(currentErr)) {\n seen.add(currentErr);\n\n if (currentErr instanceof reference) {\n return currentErr;\n }\n\n currentErr = getErrorCause(currentErr);\n }\n};\n\n/**\n * @param {Error|{ cause?: unknown|(()=>err)}} err\n * @returns {Error|undefined}\n */\nexport const getErrorCause = (err) => {\n if (!err || typeof err !== 'object' || !('cause' in err)) {\n return;\n }\n\n // VError / NError style causes\n if (typeof err.cause === 'function') {\n const causeResult = err.cause();\n\n return causeResult instanceof Error\n ? causeResult\n : undefined;\n } else {\n return err.cause instanceof Error\n ? err.cause\n : undefined;\n }\n};\n\n/**\n * Internal method that keeps a track of which error we have already added, to avoid circular recursion\n *\n * @private\n * @param {Error} err\n * @param {Set} seen\n * @returns {string}\n */\nconst _stackWithCauses = (err, seen) => {\n if (!(err instanceof Error)) return '';\n\n const stack = err.stack || '';\n\n // Ensure we don't go circular or crazily deep\n if (seen.has(err)) {\n return stack + '\\ncauses have become circular...';\n }\n\n const cause = getErrorCause(err);\n\n // TODO: Follow up in https://github.com/nodejs/node/issues/38725#issuecomment-920309092 on how to log stuff\n\n if (cause) {\n seen.add(err);\n return (stack + '\\ncaused by: ' + _stackWithCauses(cause, seen));\n } else {\n return stack;\n }\n};\n\n/**\n * @param {Error} err\n * @returns {string}\n */\nexport const stackWithCauses = (err) => _stackWithCauses(err, new Set());\n\n/**\n * Internal method that keeps a track of which error we have already added, to avoid circular recursion\n *\n * @private\n * @param {Error} err\n * @param {Set} seen\n * @param {boolean} [skip]\n * @returns {string}\n */\nconst _messageWithCauses = (err, seen, skip) => {\n if (!(err instanceof Error)) return '';\n\n const message = skip ? '' : (err.message || '');\n\n // Ensure we don't go circular or crazily deep\n if (seen.has(err)) {\n return message + ': ...';\n }\n\n const cause = getErrorCause(err);\n\n if (cause) {\n seen.add(err);\n\n const skipIfVErrorStyleCause = 'cause' in err && typeof err.cause === 'function';\n\n return (message +\n (skipIfVErrorStyleCause ? '' : ': ') +\n _messageWithCauses(cause, seen, skipIfVErrorStyleCause));\n } else {\n return message;\n }\n};\n\n/**\n * @param {Error} err\n * @returns {string}\n */\nexport const messageWithCauses = (err) => _messageWithCauses(err, new Set());\n","'use strict';\n\nconst { ErrorWithCause } = require('./lib/error-with-cause'); // linemod-replace-with: export { ErrorWithCause } from './lib/error-with-cause.mjs';\n\nconst { // linemod-replace-with: export {\n findCauseByReference,\n getErrorCause,\n messageWithCauses,\n stackWithCauses,\n} = require('./lib/helpers'); // linemod-replace-with: } from './lib/helpers.mjs';\n\nmodule.exports = { // linemod-remove\n ErrorWithCause, // linemod-remove\n findCauseByReference, // linemod-remove\n getErrorCause, // linemod-remove\n stackWithCauses, // linemod-remove\n messageWithCauses, // linemod-remove\n}; // linemod-remove\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\n\nvar _chunkQVEKZRZ2js = require('./chunk-QVEKZRZ2.js');\n\n// src/errors.ts\nvar _ponycause = require('pony-cause');\nfunction isError(error) {\n return error instanceof Error || _chunkQVEKZRZ2js.isObject.call(void 0, error) && error.constructor.name === \"Error\";\n}\nfunction isErrorWithCode(error) {\n return typeof error === \"object\" && error !== null && \"code\" in error;\n}\nfunction isErrorWithMessage(error) {\n return typeof error === \"object\" && error !== null && \"message\" in error;\n}\nfunction isErrorWithStack(error) {\n return typeof error === \"object\" && error !== null && \"stack\" in error;\n}\nfunction getErrorMessage(error) {\n if (isErrorWithMessage(error) && typeof error.message === \"string\") {\n return error.message;\n }\n if (_chunkQVEKZRZ2js.isNullOrUndefined.call(void 0, error)) {\n return \"\";\n }\n return String(error);\n}\nfunction wrapError(originalError, message) {\n if (isError(originalError)) {\n let error;\n if (Error.length === 2) {\n error = new Error(message, { cause: originalError });\n } else {\n error = new (0, _ponycause.ErrorWithCause)(message, { cause: originalError });\n }\n if (isErrorWithCode(originalError)) {\n error.code = originalError.code;\n }\n return error;\n }\n if (message.length > 0) {\n return new Error(`${String(originalError)}: ${message}`);\n }\n return new Error(String(originalError));\n}\n\n\n\n\n\n\n\nexports.isErrorWithCode = isErrorWithCode; exports.isErrorWithMessage = isErrorWithMessage; exports.isErrorWithStack = isErrorWithStack; exports.getErrorMessage = getErrorMessage; exports.wrapError = wrapError;\n//# sourceMappingURL=chunk-IZC266HS.js.map","/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\nclass StructError extends TypeError {\n constructor(failure, failures) {\n let cached;\n const { message, explanation, ...rest } = failure;\n const { path } = failure;\n const msg = path.length === 0 ? message : `At path: ${path.join('.')} -- ${message}`;\n super(explanation ?? msg);\n if (explanation != null)\n this.cause = msg;\n Object.assign(this, rest);\n this.name = this.constructor.name;\n this.failures = () => {\n return (cached ?? (cached = [failure, ...failures()]));\n };\n }\n}\n\n/**\n * Check if a value is an iterator.\n */\nfunction isIterable(x) {\n return isObject(x) && typeof x[Symbol.iterator] === 'function';\n}\n/**\n * Check if a value is a plain object.\n */\nfunction isObject(x) {\n return typeof x === 'object' && x != null;\n}\n/**\n * Check if a value is a plain object.\n */\nfunction isPlainObject(x) {\n if (Object.prototype.toString.call(x) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(x);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Return a value as a printable string.\n */\nfunction print(value) {\n if (typeof value === 'symbol') {\n return value.toString();\n }\n return typeof value === 'string' ? JSON.stringify(value) : `${value}`;\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\nfunction shiftIterator(input) {\n const { done, value } = input.next();\n return done ? undefined : value;\n}\n/**\n * Convert a single validation result to a failure.\n */\nfunction toFailure(result, context, struct, value) {\n if (result === true) {\n return;\n }\n else if (result === false) {\n result = {};\n }\n else if (typeof result === 'string') {\n result = { message: result };\n }\n const { path, branch } = context;\n const { type } = struct;\n const { refinement, message = `Expected a value of type \\`${type}\\`${refinement ? ` with refinement \\`${refinement}\\`` : ''}, but received: \\`${print(value)}\\``, } = result;\n return {\n value,\n type,\n refinement,\n key: path[path.length - 1],\n path,\n branch,\n ...result,\n message,\n };\n}\n/**\n * Convert a validation result to an iterable of failures.\n */\nfunction* toFailures(result, context, struct, value) {\n if (!isIterable(result)) {\n result = [result];\n }\n for (const r of result) {\n const failure = toFailure(r, context, struct, value);\n if (failure) {\n yield failure;\n }\n }\n}\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\nfunction* run(value, struct, options = {}) {\n const { path = [], branch = [value], coerce = false, mask = false } = options;\n const ctx = { path, branch };\n if (coerce) {\n value = struct.coercer(value, ctx);\n if (mask &&\n struct.type !== 'type' &&\n isObject(struct.schema) &&\n isObject(value) &&\n !Array.isArray(value)) {\n for (const key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key];\n }\n }\n }\n }\n let status = 'valid';\n for (const failure of struct.validator(value, ctx)) {\n failure.explanation = options.message;\n status = 'not_valid';\n yield [failure, undefined];\n }\n for (let [k, v, s] of struct.entries(value, ctx)) {\n const ts = run(v, s, {\n path: k === undefined ? path : [...path, k],\n branch: k === undefined ? branch : [...branch, v],\n coerce,\n mask,\n message: options.message,\n });\n for (const t of ts) {\n if (t[0]) {\n status = t[0].refinement != null ? 'not_refined' : 'not_valid';\n yield [t[0], undefined];\n }\n else if (coerce) {\n v = t[1];\n if (k === undefined) {\n value = v;\n }\n else if (value instanceof Map) {\n value.set(k, v);\n }\n else if (value instanceof Set) {\n value.add(v);\n }\n else if (isObject(value)) {\n if (v !== undefined || k in value)\n value[k] = v;\n }\n }\n }\n }\n if (status !== 'not_valid') {\n for (const failure of struct.refiner(value, ctx)) {\n failure.explanation = options.message;\n status = 'not_refined';\n yield [failure, undefined];\n }\n }\n if (status === 'valid') {\n yield [undefined, value];\n }\n}\n\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\nclass Struct {\n constructor(props) {\n const { type, schema, validator, refiner, coercer = (value) => value, entries = function* () { }, } = props;\n this.type = type;\n this.schema = schema;\n this.entries = entries;\n this.coercer = coercer;\n if (validator) {\n this.validator = (value, context) => {\n const result = validator(value, context);\n return toFailures(result, context, this, value);\n };\n }\n else {\n this.validator = () => [];\n }\n if (refiner) {\n this.refiner = (value, context) => {\n const result = refiner(value, context);\n return toFailures(result, context, this, value);\n };\n }\n else {\n this.refiner = () => [];\n }\n }\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n assert(value, message) {\n return assert(value, this, message);\n }\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n create(value, message) {\n return create(value, this, message);\n }\n /**\n * Check if a value passes the struct's validation.\n */\n is(value) {\n return is(value, this);\n }\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n mask(value, message) {\n return mask(value, this, message);\n }\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n validate(value, options = {}) {\n return validate(value, this, options);\n }\n}\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\nfunction assert(value, struct, message) {\n const result = validate(value, struct, { message });\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\nfunction create(value, struct, message) {\n const result = validate(value, struct, { coerce: true, message });\n if (result[0]) {\n throw result[0];\n }\n else {\n return result[1];\n }\n}\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\nfunction mask(value, struct, message) {\n const result = validate(value, struct, { coerce: true, mask: true, message });\n if (result[0]) {\n throw result[0];\n }\n else {\n return result[1];\n }\n}\n/**\n * Check if a value passes a struct.\n */\nfunction is(value, struct) {\n const result = validate(value, struct);\n return !result[0];\n}\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\nfunction validate(value, struct, options = {}) {\n const tuples = run(value, struct, options);\n const tuple = shiftIterator(tuples);\n if (tuple[0]) {\n const error = new StructError(tuple[0], function* () {\n for (const t of tuples) {\n if (t[0]) {\n yield t[0];\n }\n }\n });\n return [error, undefined];\n }\n else {\n const v = tuple[1];\n return [undefined, v];\n }\n}\n\nfunction assign(...Structs) {\n const isType = Structs[0].type === 'type';\n const schemas = Structs.map((s) => s.schema);\n const schema = Object.assign({}, ...schemas);\n return isType ? type(schema) : object(schema);\n}\n/**\n * Define a new struct type with a custom validation function.\n */\nfunction define(name, validator) {\n return new Struct({ type: name, schema: null, validator });\n}\n/**\n * Create a new struct based on an existing struct, but the value is allowed to\n * be `undefined`. `log` will be called if the value is not `undefined`.\n */\nfunction deprecated(struct, log) {\n return new Struct({\n ...struct,\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n validator(value, ctx) {\n if (value === undefined) {\n return true;\n }\n else {\n log(value, ctx);\n return struct.validator(value, ctx);\n }\n },\n });\n}\n/**\n * Create a struct with dynamic validation logic.\n *\n * The callback will receive the value currently being validated, and must\n * return a struct object to validate it with. This can be useful to model\n * validation logic that changes based on its input.\n */\nfunction dynamic(fn) {\n return new Struct({\n type: 'dynamic',\n schema: null,\n *entries(value, ctx) {\n const struct = fn(value, ctx);\n yield* struct.entries(value, ctx);\n },\n validator(value, ctx) {\n const struct = fn(value, ctx);\n return struct.validator(value, ctx);\n },\n coercer(value, ctx) {\n const struct = fn(value, ctx);\n return struct.coercer(value, ctx);\n },\n refiner(value, ctx) {\n const struct = fn(value, ctx);\n return struct.refiner(value, ctx);\n },\n });\n}\n/**\n * Create a struct with lazily evaluated validation logic.\n *\n * The first time validation is run with the struct, the callback will be called\n * and must return a struct object to use. This is useful for cases where you\n * want to have self-referential structs for nested data structures to avoid a\n * circular definition problem.\n */\nfunction lazy(fn) {\n let struct;\n return new Struct({\n type: 'lazy',\n schema: null,\n *entries(value, ctx) {\n struct ?? (struct = fn());\n yield* struct.entries(value, ctx);\n },\n validator(value, ctx) {\n struct ?? (struct = fn());\n return struct.validator(value, ctx);\n },\n coercer(value, ctx) {\n struct ?? (struct = fn());\n return struct.coercer(value, ctx);\n },\n refiner(value, ctx) {\n struct ?? (struct = fn());\n return struct.refiner(value, ctx);\n },\n });\n}\n/**\n * Create a new struct based on an existing object struct, but excluding\n * specific properties.\n *\n * Like TypeScript's `Omit` utility.\n */\nfunction omit(struct, keys) {\n const { schema } = struct;\n const subschema = { ...schema };\n for (const key of keys) {\n delete subschema[key];\n }\n switch (struct.type) {\n case 'type':\n return type(subschema);\n default:\n return object(subschema);\n }\n}\n/**\n * Create a new struct based on an existing object struct, but with all of its\n * properties allowed to be `undefined`.\n *\n * Like TypeScript's `Partial` utility.\n */\nfunction partial(struct) {\n const schema = struct instanceof Struct ? { ...struct.schema } : { ...struct };\n for (const key in schema) {\n schema[key] = optional(schema[key]);\n }\n return object(schema);\n}\n/**\n * Create a new struct based on an existing object struct, but only including\n * specific properties.\n *\n * Like TypeScript's `Pick` utility.\n */\nfunction pick(struct, keys) {\n const { schema } = struct;\n const subschema = {};\n for (const key of keys) {\n subschema[key] = schema[key];\n }\n return object(subschema);\n}\n/**\n * Define a new struct type with a custom validation function.\n *\n * @deprecated This function has been renamed to `define`.\n */\nfunction struct(name, validator) {\n console.warn('superstruct@0.11 - The `struct` helper has been renamed to `define`.');\n return define(name, validator);\n}\n\n/**\n * Ensure that any value passes validation.\n */\nfunction any() {\n return define('any', () => true);\n}\nfunction array(Element) {\n return new Struct({\n type: 'array',\n schema: Element,\n *entries(value) {\n if (Element && Array.isArray(value)) {\n for (const [i, v] of value.entries()) {\n yield [i, v, Element];\n }\n }\n },\n coercer(value) {\n return Array.isArray(value) ? value.slice() : value;\n },\n validator(value) {\n return (Array.isArray(value) ||\n `Expected an array value, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a bigint.\n */\nfunction bigint() {\n return define('bigint', (value) => {\n return typeof value === 'bigint';\n });\n}\n/**\n * Ensure that a value is a boolean.\n */\nfunction boolean() {\n return define('boolean', (value) => {\n return typeof value === 'boolean';\n });\n}\n/**\n * Ensure that a value is a valid `Date`.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\nfunction date() {\n return define('date', (value) => {\n return ((value instanceof Date && !isNaN(value.getTime())) ||\n `Expected a valid \\`Date\\` object, but received: ${print(value)}`);\n });\n}\nfunction enums(values) {\n const schema = {};\n const description = values.map((v) => print(v)).join();\n for (const key of values) {\n schema[key] = key;\n }\n return new Struct({\n type: 'enums',\n schema,\n validator(value) {\n return (values.includes(value) ||\n `Expected one of \\`${description}\\`, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a function.\n */\nfunction func() {\n return define('func', (value) => {\n return (typeof value === 'function' ||\n `Expected a function, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value is an instance of a specific class.\n */\nfunction instance(Class) {\n return define('instance', (value) => {\n return (value instanceof Class ||\n `Expected a \\`${Class.name}\\` instance, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value is an integer.\n */\nfunction integer() {\n return define('integer', (value) => {\n return ((typeof value === 'number' && !isNaN(value) && Number.isInteger(value)) ||\n `Expected an integer, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value matches all of a set of types.\n */\nfunction intersection(Structs) {\n return new Struct({\n type: 'intersection',\n schema: null,\n *entries(value, ctx) {\n for (const S of Structs) {\n yield* S.entries(value, ctx);\n }\n },\n *validator(value, ctx) {\n for (const S of Structs) {\n yield* S.validator(value, ctx);\n }\n },\n *refiner(value, ctx) {\n for (const S of Structs) {\n yield* S.refiner(value, ctx);\n }\n },\n });\n}\nfunction literal(constant) {\n const description = print(constant);\n const t = typeof constant;\n return new Struct({\n type: 'literal',\n schema: t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n validator(value) {\n return (value === constant ||\n `Expected the literal \\`${description}\\`, but received: ${print(value)}`);\n },\n });\n}\nfunction map(Key, Value) {\n return new Struct({\n type: 'map',\n schema: null,\n *entries(value) {\n if (Key && Value && value instanceof Map) {\n for (const [k, v] of value.entries()) {\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n coercer(value) {\n return value instanceof Map ? new Map(value) : value;\n },\n validator(value) {\n return (value instanceof Map ||\n `Expected a \\`Map\\` object, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that no value ever passes validation.\n */\nfunction never() {\n return define('never', () => false);\n}\n/**\n * Augment an existing struct to allow `null` values.\n */\nfunction nullable(struct) {\n return new Struct({\n ...struct,\n validator: (value, ctx) => value === null || struct.validator(value, ctx),\n refiner: (value, ctx) => value === null || struct.refiner(value, ctx),\n });\n}\n/**\n * Ensure that a value is a number.\n */\nfunction number() {\n return define('number', (value) => {\n return ((typeof value === 'number' && !isNaN(value)) ||\n `Expected a number, but received: ${print(value)}`);\n });\n}\nfunction object(schema) {\n const knowns = schema ? Object.keys(schema) : [];\n const Never = never();\n return new Struct({\n type: 'object',\n schema: schema ? schema : null,\n *entries(value) {\n if (schema && isObject(value)) {\n const unknowns = new Set(Object.keys(value));\n for (const key of knowns) {\n unknowns.delete(key);\n yield [key, value[key], schema[key]];\n }\n for (const key of unknowns) {\n yield [key, value[key], Never];\n }\n }\n },\n validator(value) {\n return (isObject(value) || `Expected an object, but received: ${print(value)}`);\n },\n coercer(value) {\n return isObject(value) ? { ...value } : value;\n },\n });\n}\n/**\n * Augment a struct to allow `undefined` values.\n */\nfunction optional(struct) {\n return new Struct({\n ...struct,\n validator: (value, ctx) => value === undefined || struct.validator(value, ctx),\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n });\n}\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\nfunction record(Key, Value) {\n return new Struct({\n type: 'record',\n schema: null,\n *entries(value) {\n if (isObject(value)) {\n for (const k in value) {\n const v = value[k];\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n validator(value) {\n return (isObject(value) || `Expected an object, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a `RegExp`.\n *\n * Note: this does not test the value against the regular expression! For that\n * you need to use the `pattern()` refinement.\n */\nfunction regexp() {\n return define('regexp', (value) => {\n return value instanceof RegExp;\n });\n}\nfunction set(Element) {\n return new Struct({\n type: 'set',\n schema: null,\n *entries(value) {\n if (Element && value instanceof Set) {\n for (const v of value) {\n yield [v, v, Element];\n }\n }\n },\n coercer(value) {\n return value instanceof Set ? new Set(value) : value;\n },\n validator(value) {\n return (value instanceof Set ||\n `Expected a \\`Set\\` object, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a string.\n */\nfunction string() {\n return define('string', (value) => {\n return (typeof value === 'string' ||\n `Expected a string, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value is a tuple of a specific length, and that each of its\n * elements is of a specific type.\n */\nfunction tuple(Structs) {\n const Never = never();\n return new Struct({\n type: 'tuple',\n schema: null,\n *entries(value) {\n if (Array.isArray(value)) {\n const length = Math.max(Structs.length, value.length);\n for (let i = 0; i < length; i++) {\n yield [i, value[i], Structs[i] || Never];\n }\n }\n },\n validator(value) {\n return (Array.isArray(value) ||\n `Expected an array, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\nfunction type(schema) {\n const keys = Object.keys(schema);\n return new Struct({\n type: 'type',\n schema,\n *entries(value) {\n if (isObject(value)) {\n for (const k of keys) {\n yield [k, value[k], schema[k]];\n }\n }\n },\n validator(value) {\n return (isObject(value) || `Expected an object, but received: ${print(value)}`);\n },\n coercer(value) {\n return isObject(value) ? { ...value } : value;\n },\n });\n}\n/**\n * Ensure that a value matches one of a set of types.\n */\nfunction union(Structs) {\n const description = Structs.map((s) => s.type).join(' | ');\n return new Struct({\n type: 'union',\n schema: null,\n coercer(value) {\n for (const S of Structs) {\n const [error, coerced] = S.validate(value, { coerce: true });\n if (!error) {\n return coerced;\n }\n }\n return value;\n },\n validator(value, ctx) {\n const failures = [];\n for (const S of Structs) {\n const [...tuples] = run(value, S, ctx);\n const [first] = tuples;\n if (!first[0]) {\n return [];\n }\n else {\n for (const [failure] of tuples) {\n if (failure) {\n failures.push(failure);\n }\n }\n }\n }\n return [\n `Expected the value to satisfy a union of \\`${description}\\`, but received: ${print(value)}`,\n ...failures,\n ];\n },\n });\n}\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\nfunction unknown() {\n return define('unknown', () => true);\n}\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\nfunction coerce(struct, condition, coercer) {\n return new Struct({\n ...struct,\n coercer: (value, ctx) => {\n return is(value, condition)\n ? struct.coercer(coercer(value, ctx), ctx)\n : struct.coercer(value, ctx);\n },\n });\n}\n/**\n * Augment a struct to replace `undefined` values with a default.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\nfunction defaulted(struct, fallback, options = {}) {\n return coerce(struct, unknown(), (x) => {\n const f = typeof fallback === 'function' ? fallback() : fallback;\n if (x === undefined) {\n return f;\n }\n if (!options.strict && isPlainObject(x) && isPlainObject(f)) {\n const ret = { ...x };\n let changed = false;\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key];\n changed = true;\n }\n }\n if (changed) {\n return ret;\n }\n }\n return x;\n });\n}\n/**\n * Augment a struct to trim string inputs.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\nfunction trimmed(struct) {\n return coerce(struct, string(), (x) => x.trim());\n}\n\n/**\n * Ensure that a string, array, map, or set is empty.\n */\nfunction empty(struct) {\n return refine(struct, 'empty', (value) => {\n const size = getSize(value);\n return (size === 0 ||\n `Expected an empty ${struct.type} but received one with a size of \\`${size}\\``);\n });\n}\nfunction getSize(value) {\n if (value instanceof Map || value instanceof Set) {\n return value.size;\n }\n else {\n return value.length;\n }\n}\n/**\n * Ensure that a number or date is below a threshold.\n */\nfunction max(struct, threshold, options = {}) {\n const { exclusive } = options;\n return refine(struct, 'max', (value) => {\n return exclusive\n ? value < threshold\n : value <= threshold ||\n `Expected a ${struct.type} less than ${exclusive ? '' : 'or equal to '}${threshold} but received \\`${value}\\``;\n });\n}\n/**\n * Ensure that a number or date is above a threshold.\n */\nfunction min(struct, threshold, options = {}) {\n const { exclusive } = options;\n return refine(struct, 'min', (value) => {\n return exclusive\n ? value > threshold\n : value >= threshold ||\n `Expected a ${struct.type} greater than ${exclusive ? '' : 'or equal to '}${threshold} but received \\`${value}\\``;\n });\n}\n/**\n * Ensure that a string, array, map or set is not empty.\n */\nfunction nonempty(struct) {\n return refine(struct, 'nonempty', (value) => {\n const size = getSize(value);\n return (size > 0 || `Expected a nonempty ${struct.type} but received an empty one`);\n });\n}\n/**\n * Ensure that a string matches a regular expression.\n */\nfunction pattern(struct, regexp) {\n return refine(struct, 'pattern', (value) => {\n return (regexp.test(value) ||\n `Expected a ${struct.type} matching \\`/${regexp.source}/\\` but received \"${value}\"`);\n });\n}\n/**\n * Ensure that a string, array, number, date, map, or set has a size (or length, or time) between `min` and `max`.\n */\nfunction size(struct, min, max = min) {\n const expected = `Expected a ${struct.type}`;\n const of = min === max ? `of \\`${min}\\`` : `between \\`${min}\\` and \\`${max}\\``;\n return refine(struct, 'size', (value) => {\n if (typeof value === 'number' || value instanceof Date) {\n return ((min <= value && value <= max) ||\n `${expected} ${of} but received \\`${value}\\``);\n }\n else if (value instanceof Map || value instanceof Set) {\n const { size } = value;\n return ((min <= size && size <= max) ||\n `${expected} with a size ${of} but received one with a size of \\`${size}\\``);\n }\n else {\n const { length } = value;\n return ((min <= length && length <= max) ||\n `${expected} with a length ${of} but received one with a length of \\`${length}\\``);\n }\n });\n}\n/**\n * Augment a `Struct` to add an additional refinement to the validation.\n *\n * The refiner function is guaranteed to receive a value of the struct's type,\n * because the struct's existing validation will already have passed. This\n * allows you to layer additional validation on top of existing structs.\n */\nfunction refine(struct, name, refiner) {\n return new Struct({\n ...struct,\n *refiner(value, ctx) {\n yield* struct.refiner(value, ctx);\n const result = refiner(value, ctx);\n const failures = toFailures(result, ctx, struct, value);\n for (const failure of failures) {\n yield { ...failure, refinement: name };\n }\n },\n });\n}\n\nexport { Struct, StructError, any, array, assert, assign, bigint, boolean, coerce, create, date, defaulted, define, deprecated, dynamic, empty, enums, func, instance, integer, intersection, is, lazy, literal, map, mask, max, min, never, nonempty, nullable, number, object, omit, optional, partial, pattern, pick, record, refine, regexp, set, size, string, struct, trimmed, tuple, type, union, unknown, validate };\n//# sourceMappingURL=index.mjs.map\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\n\nvar _chunkIZC266HSjs = require('./chunk-IZC266HS.js');\n\n// src/assert.ts\nvar _superstruct = require('superstruct');\nfunction isConstructable(fn) {\n return Boolean(typeof _optionalChain([fn, 'optionalAccess', _ => _.prototype, 'optionalAccess', _2 => _2.constructor, 'optionalAccess', _3 => _3.name]) === \"string\");\n}\nfunction getErrorMessageWithoutTrailingPeriod(error) {\n return _chunkIZC266HSjs.getErrorMessage.call(void 0, error).replace(/\\.$/u, \"\");\n}\nfunction getError(ErrorWrapper, message) {\n if (isConstructable(ErrorWrapper)) {\n return new ErrorWrapper({\n message\n });\n }\n return ErrorWrapper({\n message\n });\n}\nvar AssertionError = class extends Error {\n constructor(options) {\n super(options.message);\n this.code = \"ERR_ASSERTION\";\n }\n};\nfunction assert(value, message = \"Assertion failed.\", ErrorWrapper = AssertionError) {\n if (!value) {\n if (message instanceof Error) {\n throw message;\n }\n throw getError(ErrorWrapper, message);\n }\n}\nfunction assertStruct(value, struct, errorPrefix = \"Assertion failed\", ErrorWrapper = AssertionError) {\n try {\n _superstruct.assert.call(void 0, value, struct);\n } catch (error) {\n throw getError(\n ErrorWrapper,\n `${errorPrefix}: ${getErrorMessageWithoutTrailingPeriod(error)}.`\n );\n }\n}\nfunction assertExhaustive(_object) {\n throw new Error(\n \"Invalid branch reached. Should be detected during compilation.\"\n );\n}\n\n\n\n\n\n\nexports.AssertionError = AssertionError; exports.assert = assert; exports.assertStruct = assertStruct; exports.assertExhaustive = assertExhaustive;\n//# sourceMappingURL=chunk-6ZDHSOUV.js.map","\"use strict\";\n/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64urlnopad = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0;\n// Utilities\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n const rounded = Math.floor(digitBase / to);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = /* @__NO_SIDE_EFFECTS__ */ (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = /*@__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\n/**\n * Implemented with numbers, because BigInt is 5x slower\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexports.utils = { alphabet, chain, checksum, radix, radix2, join, padding };\n// RFC 4648 aka RFC 3548\n// ---------------------\nexports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nexports.base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// xmr ver is done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n// Block encoding significantly reduces quadratic complexity of base58.\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexports.base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += exports.base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = exports.base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nconst base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58);\nexports.base58check = base58check;\nconst BECH_ALPHABET = /* @__PURE__ */ chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexports.bech32 = genBech32('bech32');\nexports.bech32m = genBech32('bech32m');\nexports.utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexports.hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\n// prettier-ignore\nconst CODERS = {\n utf8: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\nconst bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexports.bytesToString = bytesToString;\nexports.str = exports.bytesToString; // as in python, but for bytes only\nconst stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexports.stringToBytes = stringToBytes;\nexports.bytes = exports.stringToBytes;\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n// src/hex.ts\nvar _sha3 = require('@noble/hashes/sha3');\nvar _superstruct = require('superstruct');\n\n// src/bytes.ts\nvar _base = require('@scure/base');\nvar HEX_MINIMUM_NUMBER_CHARACTER = 48;\nvar HEX_MAXIMUM_NUMBER_CHARACTER = 58;\nvar HEX_CHARACTER_OFFSET = 87;\nfunction getPrecomputedHexValuesBuilder() {\n const lookupTable = [];\n return () => {\n if (lookupTable.length === 0) {\n for (let i = 0; i < 256; i++) {\n lookupTable.push(i.toString(16).padStart(2, \"0\"));\n }\n }\n return lookupTable;\n };\n}\nvar getPrecomputedHexValues = getPrecomputedHexValuesBuilder();\nfunction isBytes(value) {\n return value instanceof Uint8Array;\n}\nfunction assertIsBytes(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, isBytes(value), \"Value must be a Uint8Array.\");\n}\nfunction bytesToHex(bytes) {\n assertIsBytes(bytes);\n if (bytes.length === 0) {\n return \"0x\";\n }\n const lookupTable = getPrecomputedHexValues();\n const hexadecimal = new Array(bytes.length);\n for (let i = 0; i < bytes.length; i++) {\n hexadecimal[i] = lookupTable[bytes[i]];\n }\n return add0x(hexadecimal.join(\"\"));\n}\nfunction bytesToBigInt(bytes) {\n assertIsBytes(bytes);\n const hexadecimal = bytesToHex(bytes);\n return BigInt(hexadecimal);\n}\nfunction bytesToSignedBigInt(bytes) {\n assertIsBytes(bytes);\n let value = BigInt(0);\n for (const byte of bytes) {\n value = (value << BigInt(8)) + BigInt(byte);\n }\n return BigInt.asIntN(bytes.length * 8, value);\n}\nfunction bytesToNumber(bytes) {\n assertIsBytes(bytes);\n const bigint = bytesToBigInt(bytes);\n _chunk6ZDHSOUVjs.assert.call(void 0, \n bigint <= BigInt(Number.MAX_SAFE_INTEGER),\n \"Number is not a safe integer. Use `bytesToBigInt` instead.\"\n );\n return Number(bigint);\n}\nfunction bytesToString(bytes) {\n assertIsBytes(bytes);\n return new TextDecoder().decode(bytes);\n}\nfunction bytesToBase64(bytes) {\n assertIsBytes(bytes);\n return _base.base64.encode(bytes);\n}\nfunction hexToBytes(value) {\n if (_optionalChain([value, 'optionalAccess', _ => _.toLowerCase, 'optionalCall', _2 => _2()]) === \"0x\") {\n return new Uint8Array();\n }\n assertIsHexString(value);\n const strippedValue = remove0x(value).toLowerCase();\n const normalizedValue = strippedValue.length % 2 === 0 ? strippedValue : `0${strippedValue}`;\n const bytes = new Uint8Array(normalizedValue.length / 2);\n for (let i = 0; i < bytes.length; i++) {\n const c1 = normalizedValue.charCodeAt(i * 2);\n const c2 = normalizedValue.charCodeAt(i * 2 + 1);\n const n1 = c1 - (c1 < HEX_MAXIMUM_NUMBER_CHARACTER ? HEX_MINIMUM_NUMBER_CHARACTER : HEX_CHARACTER_OFFSET);\n const n2 = c2 - (c2 < HEX_MAXIMUM_NUMBER_CHARACTER ? HEX_MINIMUM_NUMBER_CHARACTER : HEX_CHARACTER_OFFSET);\n bytes[i] = n1 * 16 + n2;\n }\n return bytes;\n}\nfunction bigIntToBytes(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"bigint\", \"Value must be a bigint.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, value >= BigInt(0), \"Value must be a non-negative bigint.\");\n const hexadecimal = value.toString(16);\n return hexToBytes(hexadecimal);\n}\nfunction bigIntFits(value, bytes) {\n _chunk6ZDHSOUVjs.assert.call(void 0, bytes > 0);\n const mask = value >> BigInt(31);\n return !((~value & mask) + (value & ~mask) >> BigInt(bytes * 8 + ~0));\n}\nfunction signedBigIntToBytes(value, byteLength) {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"bigint\", \"Value must be a bigint.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof byteLength === \"number\", \"Byte length must be a number.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, byteLength > 0, \"Byte length must be greater than 0.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, \n bigIntFits(value, byteLength),\n \"Byte length is too small to represent the given value.\"\n );\n let numberValue = value;\n const bytes = new Uint8Array(byteLength);\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = Number(BigInt.asUintN(8, numberValue));\n numberValue >>= BigInt(8);\n }\n return bytes.reverse();\n}\nfunction numberToBytes(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"number\", \"Value must be a number.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, value >= 0, \"Value must be a non-negative number.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, \n Number.isSafeInteger(value),\n \"Value is not a safe integer. Use `bigIntToBytes` instead.\"\n );\n const hexadecimal = value.toString(16);\n return hexToBytes(hexadecimal);\n}\nfunction stringToBytes(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"string\", \"Value must be a string.\");\n return new TextEncoder().encode(value);\n}\nfunction base64ToBytes(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"string\", \"Value must be a string.\");\n return _base.base64.decode(value);\n}\nfunction valueToBytes(value) {\n if (typeof value === \"bigint\") {\n return bigIntToBytes(value);\n }\n if (typeof value === \"number\") {\n return numberToBytes(value);\n }\n if (typeof value === \"string\") {\n if (value.startsWith(\"0x\")) {\n return hexToBytes(value);\n }\n return stringToBytes(value);\n }\n if (isBytes(value)) {\n return value;\n }\n throw new TypeError(`Unsupported value type: \"${typeof value}\".`);\n}\nfunction concatBytes(values) {\n const normalizedValues = new Array(values.length);\n let byteLength = 0;\n for (let i = 0; i < values.length; i++) {\n const value = valueToBytes(values[i]);\n normalizedValues[i] = value;\n byteLength += value.length;\n }\n const bytes = new Uint8Array(byteLength);\n for (let i = 0, offset = 0; i < normalizedValues.length; i++) {\n bytes.set(normalizedValues[i], offset);\n offset += normalizedValues[i].length;\n }\n return bytes;\n}\nfunction createDataView(bytes) {\n if (typeof Buffer !== \"undefined\" && bytes instanceof Buffer) {\n const buffer = bytes.buffer.slice(\n bytes.byteOffset,\n bytes.byteOffset + bytes.byteLength\n );\n return new DataView(buffer);\n }\n return new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n}\n\n// src/hex.ts\nvar HexStruct = _superstruct.pattern.call(void 0, _superstruct.string.call(void 0, ), /^(?:0x)?[0-9a-f]+$/iu);\nvar StrictHexStruct = _superstruct.pattern.call(void 0, _superstruct.string.call(void 0, ), /^0x[0-9a-f]+$/iu);\nvar HexAddressStruct = _superstruct.pattern.call(void 0, \n _superstruct.string.call(void 0, ),\n /^0x[0-9a-f]{40}$/u\n);\nvar HexChecksumAddressStruct = _superstruct.pattern.call(void 0, \n _superstruct.string.call(void 0, ),\n /^0x[0-9a-fA-F]{40}$/u\n);\nfunction isHexString(value) {\n return _superstruct.is.call(void 0, value, HexStruct);\n}\nfunction isStrictHexString(value) {\n return _superstruct.is.call(void 0, value, StrictHexStruct);\n}\nfunction assertIsHexString(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, isHexString(value), \"Value must be a hexadecimal string.\");\n}\nfunction assertIsStrictHexString(value) {\n _chunk6ZDHSOUVjs.assert.call(void 0, \n isStrictHexString(value),\n 'Value must be a hexadecimal string, starting with \"0x\".'\n );\n}\nfunction isValidHexAddress(possibleAddress) {\n return _superstruct.is.call(void 0, possibleAddress, HexAddressStruct) || isValidChecksumAddress(possibleAddress);\n}\nfunction getChecksumAddress(address) {\n _chunk6ZDHSOUVjs.assert.call(void 0, _superstruct.is.call(void 0, address, HexChecksumAddressStruct), \"Invalid hex address.\");\n const unPrefixed = remove0x(address.toLowerCase());\n const unPrefixedHash = remove0x(bytesToHex(_sha3.keccak_256.call(void 0, unPrefixed)));\n return `0x${unPrefixed.split(\"\").map((character, nibbleIndex) => {\n const hashCharacter = unPrefixedHash[nibbleIndex];\n _chunk6ZDHSOUVjs.assert.call(void 0, _superstruct.is.call(void 0, hashCharacter, _superstruct.string.call(void 0, )), \"Hash shorter than address.\");\n return parseInt(hashCharacter, 16) > 7 ? character.toUpperCase() : character;\n }).join(\"\")}`;\n}\nfunction isValidChecksumAddress(possibleChecksum) {\n if (!_superstruct.is.call(void 0, possibleChecksum, HexChecksumAddressStruct)) {\n return false;\n }\n return getChecksumAddress(possibleChecksum) === possibleChecksum;\n}\nfunction add0x(hexadecimal) {\n if (hexadecimal.startsWith(\"0x\")) {\n return hexadecimal;\n }\n if (hexadecimal.startsWith(\"0X\")) {\n return `0x${hexadecimal.substring(2)}`;\n }\n return `0x${hexadecimal}`;\n}\nfunction remove0x(hexadecimal) {\n if (hexadecimal.startsWith(\"0x\") || hexadecimal.startsWith(\"0X\")) {\n return hexadecimal.substring(2);\n }\n return hexadecimal;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexports.HexStruct = HexStruct; exports.StrictHexStruct = StrictHexStruct; exports.HexAddressStruct = HexAddressStruct; exports.HexChecksumAddressStruct = HexChecksumAddressStruct; exports.isHexString = isHexString; exports.isStrictHexString = isStrictHexString; exports.assertIsHexString = assertIsHexString; exports.assertIsStrictHexString = assertIsStrictHexString; exports.isValidHexAddress = isValidHexAddress; exports.getChecksumAddress = getChecksumAddress; exports.isValidChecksumAddress = isValidChecksumAddress; exports.add0x = add0x; exports.remove0x = remove0x; exports.isBytes = isBytes; exports.assertIsBytes = assertIsBytes; exports.bytesToHex = bytesToHex; exports.bytesToBigInt = bytesToBigInt; exports.bytesToSignedBigInt = bytesToSignedBigInt; exports.bytesToNumber = bytesToNumber; exports.bytesToString = bytesToString; exports.bytesToBase64 = bytesToBase64; exports.hexToBytes = hexToBytes; exports.bigIntToBytes = bigIntToBytes; exports.signedBigIntToBytes = signedBigIntToBytes; exports.numberToBytes = numberToBytes; exports.stringToBytes = stringToBytes; exports.base64ToBytes = base64ToBytes; exports.valueToBytes = valueToBytes; exports.concatBytes = concatBytes; exports.createDataView = createDataView;\n//# sourceMappingURL=chunk-QEPVHEP7.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\n\nvar _chunkQEPVHEP7js = require('./chunk-QEPVHEP7.js');\n\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n// src/number.ts\nvar numberToHex = (value) => {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"number\", \"Value must be a number.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, value >= 0, \"Value must be a non-negative number.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, \n Number.isSafeInteger(value),\n \"Value is not a safe integer. Use `bigIntToHex` instead.\"\n );\n return _chunkQEPVHEP7js.add0x.call(void 0, value.toString(16));\n};\nvar bigIntToHex = (value) => {\n _chunk6ZDHSOUVjs.assert.call(void 0, typeof value === \"bigint\", \"Value must be a bigint.\");\n _chunk6ZDHSOUVjs.assert.call(void 0, value >= 0, \"Value must be a non-negative bigint.\");\n return _chunkQEPVHEP7js.add0x.call(void 0, value.toString(16));\n};\nvar hexToNumber = (value) => {\n _chunkQEPVHEP7js.assertIsHexString.call(void 0, value);\n const numberValue = parseInt(value, 16);\n _chunk6ZDHSOUVjs.assert.call(void 0, \n Number.isSafeInteger(numberValue),\n \"Value is not a safe integer. Use `hexToBigInt` instead.\"\n );\n return numberValue;\n};\nvar hexToBigInt = (value) => {\n _chunkQEPVHEP7js.assertIsHexString.call(void 0, value);\n return BigInt(_chunkQEPVHEP7js.add0x.call(void 0, value));\n};\n\n\n\n\n\n\nexports.numberToHex = numberToHex; exports.bigIntToHex = bigIntToHex; exports.hexToNumber = hexToNumber; exports.hexToBigInt = hexToBigInt;\n//# sourceMappingURL=chunk-VFXTVNXN.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});// src/time.ts\nvar Duration = /* @__PURE__ */ ((Duration2) => {\n Duration2[Duration2[\"Millisecond\"] = 1] = \"Millisecond\";\n Duration2[Duration2[\"Second\"] = 1e3] = \"Second\";\n Duration2[Duration2[\"Minute\"] = 6e4] = \"Minute\";\n Duration2[Duration2[\"Hour\"] = 36e5] = \"Hour\";\n Duration2[Duration2[\"Day\"] = 864e5] = \"Day\";\n Duration2[Duration2[\"Week\"] = 6048e5] = \"Week\";\n Duration2[Duration2[\"Year\"] = 31536e6] = \"Year\";\n return Duration2;\n})(Duration || {});\nvar isNonNegativeInteger = (number) => Number.isInteger(number) && number >= 0;\nvar assertIsNonNegativeInteger = (number, name) => {\n if (!isNonNegativeInteger(number)) {\n throw new Error(\n `\"${name}\" must be a non-negative integer. Received: \"${number}\".`\n );\n }\n};\nfunction inMilliseconds(count, duration) {\n assertIsNonNegativeInteger(count, \"count\");\n return count * duration;\n}\nfunction timeSince(timestamp) {\n assertIsNonNegativeInteger(timestamp, \"timestamp\");\n return Date.now() - timestamp;\n}\n\n\n\n\n\nexports.Duration = Duration; exports.inMilliseconds = inMilliseconds; exports.timeSince = timeSince;\n//# sourceMappingURL=chunk-4RMX5YWE.js.map","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => comps.join(' ').trim())\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n// src/versions.ts\n\n\n\n\n\n\nvar _semver = require('semver');\nvar _superstruct = require('superstruct');\nvar VersionStruct = _superstruct.refine.call(void 0, \n _superstruct.string.call(void 0, ),\n \"Version\",\n (value) => {\n if (_semver.valid.call(void 0, value) === null) {\n return `Expected SemVer version, got \"${value}\"`;\n }\n return true;\n }\n);\nvar VersionRangeStruct = _superstruct.refine.call(void 0, \n _superstruct.string.call(void 0, ),\n \"Version range\",\n (value) => {\n if (_semver.validRange.call(void 0, value) === null) {\n return `Expected SemVer range, got \"${value}\"`;\n }\n return true;\n }\n);\nfunction isValidSemVerVersion(version) {\n return _superstruct.is.call(void 0, version, VersionStruct);\n}\nfunction isValidSemVerRange(versionRange) {\n return _superstruct.is.call(void 0, versionRange, VersionRangeStruct);\n}\nfunction assertIsSemVerVersion(version) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, version, VersionStruct);\n}\nfunction assertIsSemVerRange(range) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, range, VersionRangeStruct);\n}\nfunction gtVersion(version1, version2) {\n return _semver.gt.call(void 0, version1, version2);\n}\nfunction gtRange(version, range) {\n return _semver.gtr.call(void 0, version, range);\n}\nfunction satisfiesVersionRange(version, versionRange) {\n return _semver.satisfies.call(void 0, version, versionRange, {\n includePrerelease: true\n });\n}\n\n\n\n\n\n\n\n\n\n\n\nexports.VersionStruct = VersionStruct; exports.VersionRangeStruct = VersionRangeStruct; exports.isValidSemVerVersion = isValidSemVerVersion; exports.isValidSemVerRange = isValidSemVerRange; exports.assertIsSemVerVersion = assertIsSemVerVersion; exports.assertIsSemVerRange = assertIsSemVerRange; exports.gtVersion = gtVersion; exports.gtRange = gtRange; exports.satisfiesVersionRange = satisfiesVersionRange;\n//# sourceMappingURL=chunk-4D6XQBHA.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n\nvar _chunkQVEKZRZ2js = require('./chunk-QVEKZRZ2.js');\n\n// src/json.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _superstruct = require('superstruct');\nvar object = (schema) => (\n // The type is slightly different from a regular object struct, because we\n // want to make properties with `undefined` in their type optional, but not\n // `undefined` itself. This means that we need a type cast.\n _superstruct.object.call(void 0, schema)\n);\nfunction hasOptional({ path, branch }) {\n const field = path[path.length - 1];\n return _chunkQVEKZRZ2js.hasProperty.call(void 0, branch[branch.length - 2], field);\n}\nfunction exactOptional(struct) {\n return new (0, _superstruct.Struct)({\n ...struct,\n type: `optional ${struct.type}`,\n validator: (value, context) => !hasOptional(context) || struct.validator(value, context),\n refiner: (value, context) => !hasOptional(context) || struct.refiner(value, context)\n });\n}\nvar finiteNumber = () => _superstruct.define.call(void 0, \"finite number\", (value) => {\n return _superstruct.is.call(void 0, value, _superstruct.number.call(void 0, )) && Number.isFinite(value);\n});\nvar UnsafeJsonStruct = _superstruct.union.call(void 0, [\n _superstruct.literal.call(void 0, null),\n _superstruct.boolean.call(void 0, ),\n finiteNumber(),\n _superstruct.string.call(void 0, ),\n _superstruct.array.call(void 0, _superstruct.lazy.call(void 0, () => UnsafeJsonStruct)),\n _superstruct.record.call(void 0, \n _superstruct.string.call(void 0, ),\n _superstruct.lazy.call(void 0, () => UnsafeJsonStruct)\n )\n]);\nvar JsonStruct = _superstruct.coerce.call(void 0, UnsafeJsonStruct, _superstruct.any.call(void 0, ), (value) => {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, value, UnsafeJsonStruct);\n return JSON.parse(\n JSON.stringify(value, (propKey, propValue) => {\n if (propKey === \"__proto__\" || propKey === \"constructor\") {\n return void 0;\n }\n return propValue;\n })\n );\n});\nfunction isValidJson(value) {\n try {\n getSafeJson(value);\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction getSafeJson(value) {\n return _superstruct.create.call(void 0, value, JsonStruct);\n}\nfunction getJsonSize(value) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, value, JsonStruct, \"Invalid JSON value\");\n const json = JSON.stringify(value);\n return new TextEncoder().encode(json).byteLength;\n}\nvar jsonrpc2 = \"2.0\";\nvar JsonRpcVersionStruct = _superstruct.literal.call(void 0, jsonrpc2);\nvar JsonRpcIdStruct = _superstruct.nullable.call(void 0, _superstruct.union.call(void 0, [_superstruct.number.call(void 0, ), _superstruct.string.call(void 0, )]));\nvar JsonRpcErrorStruct = object({\n code: _superstruct.integer.call(void 0, ),\n message: _superstruct.string.call(void 0, ),\n data: exactOptional(JsonStruct),\n stack: exactOptional(_superstruct.string.call(void 0, ))\n});\nvar JsonRpcParamsStruct = _superstruct.union.call(void 0, [_superstruct.record.call(void 0, _superstruct.string.call(void 0, ), JsonStruct), _superstruct.array.call(void 0, JsonStruct)]);\nvar JsonRpcRequestStruct = object({\n id: JsonRpcIdStruct,\n jsonrpc: JsonRpcVersionStruct,\n method: _superstruct.string.call(void 0, ),\n params: exactOptional(JsonRpcParamsStruct)\n});\nvar JsonRpcNotificationStruct = object({\n jsonrpc: JsonRpcVersionStruct,\n method: _superstruct.string.call(void 0, ),\n params: exactOptional(JsonRpcParamsStruct)\n});\nfunction isJsonRpcNotification(value) {\n return _superstruct.is.call(void 0, value, JsonRpcNotificationStruct);\n}\nfunction assertIsJsonRpcNotification(value, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n value,\n JsonRpcNotificationStruct,\n \"Invalid JSON-RPC notification\",\n ErrorWrapper\n );\n}\nfunction isJsonRpcRequest(value) {\n return _superstruct.is.call(void 0, value, JsonRpcRequestStruct);\n}\nfunction assertIsJsonRpcRequest(value, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n value,\n JsonRpcRequestStruct,\n \"Invalid JSON-RPC request\",\n ErrorWrapper\n );\n}\nvar PendingJsonRpcResponseStruct = _superstruct.object.call(void 0, {\n id: JsonRpcIdStruct,\n jsonrpc: JsonRpcVersionStruct,\n result: _superstruct.optional.call(void 0, _superstruct.unknown.call(void 0, )),\n error: _superstruct.optional.call(void 0, JsonRpcErrorStruct)\n});\nvar JsonRpcSuccessStruct = object({\n id: JsonRpcIdStruct,\n jsonrpc: JsonRpcVersionStruct,\n result: JsonStruct\n});\nvar JsonRpcFailureStruct = object({\n id: JsonRpcIdStruct,\n jsonrpc: JsonRpcVersionStruct,\n error: JsonRpcErrorStruct\n});\nvar JsonRpcResponseStruct = _superstruct.union.call(void 0, [\n JsonRpcSuccessStruct,\n JsonRpcFailureStruct\n]);\nfunction isPendingJsonRpcResponse(response) {\n return _superstruct.is.call(void 0, response, PendingJsonRpcResponseStruct);\n}\nfunction assertIsPendingJsonRpcResponse(response, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n response,\n PendingJsonRpcResponseStruct,\n \"Invalid pending JSON-RPC response\",\n ErrorWrapper\n );\n}\nfunction isJsonRpcResponse(response) {\n return _superstruct.is.call(void 0, response, JsonRpcResponseStruct);\n}\nfunction assertIsJsonRpcResponse(value, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n value,\n JsonRpcResponseStruct,\n \"Invalid JSON-RPC response\",\n ErrorWrapper\n );\n}\nfunction isJsonRpcSuccess(value) {\n return _superstruct.is.call(void 0, value, JsonRpcSuccessStruct);\n}\nfunction assertIsJsonRpcSuccess(value, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n value,\n JsonRpcSuccessStruct,\n \"Invalid JSON-RPC success response\",\n ErrorWrapper\n );\n}\nfunction isJsonRpcFailure(value) {\n return _superstruct.is.call(void 0, value, JsonRpcFailureStruct);\n}\nfunction assertIsJsonRpcFailure(value, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n value,\n JsonRpcFailureStruct,\n \"Invalid JSON-RPC failure response\",\n ErrorWrapper\n );\n}\nfunction isJsonRpcError(value) {\n return _superstruct.is.call(void 0, value, JsonRpcErrorStruct);\n}\nfunction assertIsJsonRpcError(value, ErrorWrapper) {\n _chunk6ZDHSOUVjs.assertStruct.call(void 0, \n value,\n JsonRpcErrorStruct,\n \"Invalid JSON-RPC error\",\n ErrorWrapper\n );\n}\nfunction getJsonRpcIdValidator(options) {\n const { permitEmptyString, permitFractions, permitNull } = {\n permitEmptyString: true,\n permitFractions: false,\n permitNull: true,\n ...options\n };\n const isValidJsonRpcId = (id) => {\n return Boolean(\n typeof id === \"number\" && (permitFractions || Number.isInteger(id)) || typeof id === \"string\" && (permitEmptyString || id.length > 0) || permitNull && id === null\n );\n };\n return isValidJsonRpcId;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexports.object = object; exports.exactOptional = exactOptional; exports.UnsafeJsonStruct = UnsafeJsonStruct; exports.JsonStruct = JsonStruct; exports.isValidJson = isValidJson; exports.getSafeJson = getSafeJson; exports.getJsonSize = getJsonSize; exports.jsonrpc2 = jsonrpc2; exports.JsonRpcVersionStruct = JsonRpcVersionStruct; exports.JsonRpcIdStruct = JsonRpcIdStruct; exports.JsonRpcErrorStruct = JsonRpcErrorStruct; exports.JsonRpcParamsStruct = JsonRpcParamsStruct; exports.JsonRpcRequestStruct = JsonRpcRequestStruct; exports.JsonRpcNotificationStruct = JsonRpcNotificationStruct; exports.isJsonRpcNotification = isJsonRpcNotification; exports.assertIsJsonRpcNotification = assertIsJsonRpcNotification; exports.isJsonRpcRequest = isJsonRpcRequest; exports.assertIsJsonRpcRequest = assertIsJsonRpcRequest; exports.PendingJsonRpcResponseStruct = PendingJsonRpcResponseStruct; exports.JsonRpcSuccessStruct = JsonRpcSuccessStruct; exports.JsonRpcFailureStruct = JsonRpcFailureStruct; exports.JsonRpcResponseStruct = JsonRpcResponseStruct; exports.isPendingJsonRpcResponse = isPendingJsonRpcResponse; exports.assertIsPendingJsonRpcResponse = assertIsPendingJsonRpcResponse; exports.isJsonRpcResponse = isJsonRpcResponse; exports.assertIsJsonRpcResponse = assertIsJsonRpcResponse; exports.isJsonRpcSuccess = isJsonRpcSuccess; exports.assertIsJsonRpcSuccess = assertIsJsonRpcSuccess; exports.isJsonRpcFailure = isJsonRpcFailure; exports.assertIsJsonRpcFailure = assertIsJsonRpcFailure; exports.isJsonRpcError = isJsonRpcError; exports.assertIsJsonRpcError = assertIsJsonRpcError; exports.getJsonRpcIdValidator = getJsonRpcIdValidator;\n//# sourceMappingURL=chunk-OLLG4H35.js.map","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/logging.ts\nvar _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);\nvar globalLogger = _debug2.default.call(void 0, \"metamask\");\nfunction createProjectLogger(projectName) {\n return globalLogger.extend(projectName);\n}\nfunction createModuleLogger(projectLogger, moduleName) {\n return projectLogger.extend(moduleName);\n}\n\n\n\n\nexports.createProjectLogger = createProjectLogger; exports.createModuleLogger = createModuleLogger;\n//# sourceMappingURL=chunk-2LBGT4GH.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/caip-types.ts\nvar _superstruct = require('superstruct');\nvar CAIP_CHAIN_ID_REGEX = /^(?[-a-z0-9]{3,8}):(?[-_a-zA-Z0-9]{1,32})$/u;\nvar CAIP_NAMESPACE_REGEX = /^[-a-z0-9]{3,8}$/u;\nvar CAIP_REFERENCE_REGEX = /^[-_a-zA-Z0-9]{1,32}$/u;\nvar CAIP_ACCOUNT_ID_REGEX = /^(?(?[-a-z0-9]{3,8}):(?[-_a-zA-Z0-9]{1,32})):(?[-.%a-zA-Z0-9]{1,128})$/u;\nvar CAIP_ACCOUNT_ADDRESS_REGEX = /^[-.%a-zA-Z0-9]{1,128}$/u;\nvar CaipChainIdStruct = _superstruct.pattern.call(void 0, _superstruct.string.call(void 0, ), CAIP_CHAIN_ID_REGEX);\nvar CaipNamespaceStruct = _superstruct.pattern.call(void 0, _superstruct.string.call(void 0, ), CAIP_NAMESPACE_REGEX);\nvar CaipReferenceStruct = _superstruct.pattern.call(void 0, _superstruct.string.call(void 0, ), CAIP_REFERENCE_REGEX);\nvar CaipAccountIdStruct = _superstruct.pattern.call(void 0, _superstruct.string.call(void 0, ), CAIP_ACCOUNT_ID_REGEX);\nvar CaipAccountAddressStruct = _superstruct.pattern.call(void 0, \n _superstruct.string.call(void 0, ),\n CAIP_ACCOUNT_ADDRESS_REGEX\n);\nfunction isCaipChainId(value) {\n return _superstruct.is.call(void 0, value, CaipChainIdStruct);\n}\nfunction isCaipNamespace(value) {\n return _superstruct.is.call(void 0, value, CaipNamespaceStruct);\n}\nfunction isCaipReference(value) {\n return _superstruct.is.call(void 0, value, CaipReferenceStruct);\n}\nfunction isCaipAccountId(value) {\n return _superstruct.is.call(void 0, value, CaipAccountIdStruct);\n}\nfunction isCaipAccountAddress(value) {\n return _superstruct.is.call(void 0, value, CaipAccountAddressStruct);\n}\nfunction parseCaipChainId(caipChainId) {\n const match = CAIP_CHAIN_ID_REGEX.exec(caipChainId);\n if (!_optionalChain([match, 'optionalAccess', _ => _.groups])) {\n throw new Error(\"Invalid CAIP chain ID.\");\n }\n return {\n namespace: match.groups.namespace,\n reference: match.groups.reference\n };\n}\nfunction parseCaipAccountId(caipAccountId) {\n const match = CAIP_ACCOUNT_ID_REGEX.exec(caipAccountId);\n if (!_optionalChain([match, 'optionalAccess', _2 => _2.groups])) {\n throw new Error(\"Invalid CAIP account ID.\");\n }\n return {\n address: match.groups.accountAddress,\n chainId: match.groups.chainId,\n chain: {\n namespace: match.groups.namespace,\n reference: match.groups.reference\n }\n };\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexports.CAIP_CHAIN_ID_REGEX = CAIP_CHAIN_ID_REGEX; exports.CAIP_NAMESPACE_REGEX = CAIP_NAMESPACE_REGEX; exports.CAIP_REFERENCE_REGEX = CAIP_REFERENCE_REGEX; exports.CAIP_ACCOUNT_ID_REGEX = CAIP_ACCOUNT_ID_REGEX; exports.CAIP_ACCOUNT_ADDRESS_REGEX = CAIP_ACCOUNT_ADDRESS_REGEX; exports.CaipChainIdStruct = CaipChainIdStruct; exports.CaipNamespaceStruct = CaipNamespaceStruct; exports.CaipReferenceStruct = CaipReferenceStruct; exports.CaipAccountIdStruct = CaipAccountIdStruct; exports.CaipAccountAddressStruct = CaipAccountAddressStruct; exports.isCaipChainId = isCaipChainId; exports.isCaipNamespace = isCaipNamespace; exports.isCaipReference = isCaipReference; exports.isCaipAccountId = isCaipAccountId; exports.isCaipAccountAddress = isCaipAccountAddress; exports.parseCaipChainId = parseCaipChainId; exports.parseCaipAccountId = parseCaipAccountId;\n//# sourceMappingURL=chunk-U7ZUGCE7.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n// src/base64.ts\nvar _superstruct = require('superstruct');\nvar base64 = (struct, options = {}) => {\n const paddingRequired = _nullishCoalesce(options.paddingRequired, () => ( false));\n const characterSet = _nullishCoalesce(options.characterSet, () => ( \"base64\"));\n let letters;\n if (characterSet === \"base64\") {\n letters = String.raw`[A-Za-z0-9+\\/]`;\n } else {\n _chunk6ZDHSOUVjs.assert.call(void 0, characterSet === \"base64url\");\n letters = String.raw`[-_A-Za-z0-9]`;\n }\n let re;\n if (paddingRequired) {\n re = new RegExp(\n `^(?:${letters}{4})*(?:${letters}{3}=|${letters}{2}==)?$`,\n \"u\"\n );\n } else {\n re = new RegExp(\n `^(?:${letters}{4})*(?:${letters}{2,3}|${letters}{3}=|${letters}{2}==)?$`,\n \"u\"\n );\n }\n return _superstruct.pattern.call(void 0, struct, re);\n};\n\n\n\nexports.base64 = base64;\n//# sourceMappingURL=chunk-6NZW4WK4.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\nvar _chunk6NZW4WK4js = require('./chunk-6NZW4WK4.js');\n\n// src/checksum.ts\nvar _superstruct = require('superstruct');\nvar ChecksumStruct = _superstruct.size.call(void 0, \n _chunk6NZW4WK4js.base64.call(void 0, _superstruct.string.call(void 0, ), { paddingRequired: true }),\n 44,\n 44\n);\n\n\n\nexports.ChecksumStruct = ChecksumStruct;\n//# sourceMappingURL=chunk-E4C7EW4R.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\n\n\nvar _chunkQEPVHEP7js = require('./chunk-QEPVHEP7.js');\n\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n// src/coercers.ts\n\n\n\n\n\n\n\n\n\nvar _superstruct = require('superstruct');\nvar NumberLikeStruct = _superstruct.union.call(void 0, [_superstruct.number.call(void 0, ), _superstruct.bigint.call(void 0, ), _superstruct.string.call(void 0, ), _chunkQEPVHEP7js.StrictHexStruct]);\nvar NumberCoercer = _superstruct.coerce.call(void 0, _superstruct.number.call(void 0, ), NumberLikeStruct, Number);\nvar BigIntCoercer = _superstruct.coerce.call(void 0, _superstruct.bigint.call(void 0, ), NumberLikeStruct, BigInt);\nvar BytesLikeStruct = _superstruct.union.call(void 0, [_chunkQEPVHEP7js.StrictHexStruct, _superstruct.instance.call(void 0, Uint8Array)]);\nvar BytesCoercer = _superstruct.coerce.call(void 0, \n _superstruct.instance.call(void 0, Uint8Array),\n _superstruct.union.call(void 0, [_chunkQEPVHEP7js.StrictHexStruct]),\n _chunkQEPVHEP7js.hexToBytes\n);\nvar HexCoercer = _superstruct.coerce.call(void 0, _chunkQEPVHEP7js.StrictHexStruct, _superstruct.instance.call(void 0, Uint8Array), _chunkQEPVHEP7js.bytesToHex);\nfunction createNumber(value) {\n try {\n const result = _superstruct.create.call(void 0, value, NumberCoercer);\n _chunk6ZDHSOUVjs.assert.call(void 0, \n Number.isFinite(result),\n `Expected a number-like value, got \"${value}\".`\n );\n return result;\n } catch (error) {\n if (error instanceof _superstruct.StructError) {\n throw new Error(`Expected a number-like value, got \"${value}\".`);\n }\n throw error;\n }\n}\nfunction createBigInt(value) {\n try {\n return _superstruct.create.call(void 0, value, BigIntCoercer);\n } catch (error) {\n if (error instanceof _superstruct.StructError) {\n throw new Error(\n `Expected a number-like value, got \"${String(error.value)}\".`\n );\n }\n throw error;\n }\n}\nfunction createBytes(value) {\n if (typeof value === \"string\" && value.toLowerCase() === \"0x\") {\n return new Uint8Array();\n }\n try {\n return _superstruct.create.call(void 0, value, BytesCoercer);\n } catch (error) {\n if (error instanceof _superstruct.StructError) {\n throw new Error(\n `Expected a bytes-like value, got \"${String(error.value)}\".`\n );\n }\n throw error;\n }\n}\nfunction createHex(value) {\n if (value instanceof Uint8Array && value.length === 0 || typeof value === \"string\" && value.toLowerCase() === \"0x\") {\n return \"0x\";\n }\n try {\n return _superstruct.create.call(void 0, value, HexCoercer);\n } catch (error) {\n if (error instanceof _superstruct.StructError) {\n throw new Error(\n `Expected a bytes-like value, got \"${String(error.value)}\".`\n );\n }\n throw error;\n }\n}\n\n\n\n\n\n\nexports.createNumber = createNumber; exports.createBigInt = createBigInt; exports.createBytes = createBytes; exports.createHex = createHex;\n//# sourceMappingURL=chunk-DHVKFDHQ.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\n\n\n\n\n\nexports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet;\n//# sourceMappingURL=chunk-3W5G4CYI.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});\n\n\n\nvar _chunk3W5G4CYIjs = require('./chunk-3W5G4CYI.js');\n\n// src/collections.ts\nvar _map;\nvar FrozenMap = class {\n constructor(entries) {\n _chunk3W5G4CYIjs.__privateAdd.call(void 0, this, _map, void 0);\n _chunk3W5G4CYIjs.__privateSet.call(void 0, this, _map, new Map(entries));\n Object.freeze(this);\n }\n get size() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).size;\n }\n [Symbol.iterator]() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map)[Symbol.iterator]();\n }\n entries() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).entries();\n }\n forEach(callbackfn, thisArg) {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).forEach(\n (value, key, _map2) => callbackfn.call(thisArg, value, key, this)\n );\n }\n get(key) {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).get(key);\n }\n has(key) {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).has(key);\n }\n keys() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).keys();\n }\n values() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _map).values();\n }\n toString() {\n return `FrozenMap(${this.size}) {${this.size > 0 ? ` ${[...this.entries()].map(([key, value]) => `${String(key)} => ${String(value)}`).join(\", \")} ` : \"\"}}`;\n }\n};\n_map = new WeakMap();\nvar _set;\nvar FrozenSet = class {\n constructor(values) {\n _chunk3W5G4CYIjs.__privateAdd.call(void 0, this, _set, void 0);\n _chunk3W5G4CYIjs.__privateSet.call(void 0, this, _set, new Set(values));\n Object.freeze(this);\n }\n get size() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set).size;\n }\n [Symbol.iterator]() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set)[Symbol.iterator]();\n }\n entries() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set).entries();\n }\n forEach(callbackfn, thisArg) {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set).forEach(\n (value, value2, _set2) => callbackfn.call(thisArg, value, value2, this)\n );\n }\n has(value) {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set).has(value);\n }\n keys() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set).keys();\n }\n values() {\n return _chunk3W5G4CYIjs.__privateGet.call(void 0, this, _set).values();\n }\n toString() {\n return `FrozenSet(${this.size}) {${this.size > 0 ? ` ${[...this.values()].map((member) => String(member)).join(\", \")} ` : \"\"}}`;\n }\n};\n_set = new WeakMap();\nObject.freeze(FrozenMap);\nObject.freeze(FrozenMap.prototype);\nObject.freeze(FrozenSet);\nObject.freeze(FrozenSet.prototype);\n\n\n\n\nexports.FrozenMap = FrozenMap; exports.FrozenSet = FrozenSet;\n//# sourceMappingURL=chunk-Z2RGWDD7.js.map","\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true});require('./chunk-2TBCL6EF.js');\n\n\n\n\n\nvar _chunkVFXTVNXNjs = require('./chunk-VFXTVNXN.js');\nrequire('./chunk-LC2CRSWD.js');\n\n\n\n\nvar _chunk4RMX5YWEjs = require('./chunk-4RMX5YWE.js');\nrequire('./chunk-UOTVU7OQ.js');\n\n\n\n\n\n\n\n\n\n\nvar _chunk4D6XQBHAjs = require('./chunk-4D6XQBHA.js');\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _chunkOLLG4H35js = require('./chunk-OLLG4H35.js');\nrequire('./chunk-RKRGAFXY.js');\n\n\n\nvar _chunk2LBGT4GHjs = require('./chunk-2LBGT4GH.js');\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _chunkU7ZUGCE7js = require('./chunk-U7ZUGCE7.js');\n\n\nvar _chunkE4C7EW4Rjs = require('./chunk-E4C7EW4R.js');\n\n\nvar _chunk6NZW4WK4js = require('./chunk-6NZW4WK4.js');\n\n\n\n\n\nvar _chunkDHVKFDHQjs = require('./chunk-DHVKFDHQ.js');\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _chunkQEPVHEP7js = require('./chunk-QEPVHEP7.js');\n\n\n\n\n\nvar _chunk6ZDHSOUVjs = require('./chunk-6ZDHSOUV.js');\n\n\n\n\n\n\nvar _chunkIZC266HSjs = require('./chunk-IZC266HS.js');\n\n\n\n\n\n\n\n\n\n\n\n\nvar _chunkQVEKZRZ2js = require('./chunk-QVEKZRZ2.js');\n\n\n\nvar _chunkZ2RGWDD7js = require('./chunk-Z2RGWDD7.js');\nrequire('./chunk-3W5G4CYI.js');\nrequire('./chunk-EQMZL4XU.js');\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexports.AssertionError = _chunk6ZDHSOUVjs.AssertionError; exports.CAIP_ACCOUNT_ADDRESS_REGEX = _chunkU7ZUGCE7js.CAIP_ACCOUNT_ADDRESS_REGEX; exports.CAIP_ACCOUNT_ID_REGEX = _chunkU7ZUGCE7js.CAIP_ACCOUNT_ID_REGEX; exports.CAIP_CHAIN_ID_REGEX = _chunkU7ZUGCE7js.CAIP_CHAIN_ID_REGEX; exports.CAIP_NAMESPACE_REGEX = _chunkU7ZUGCE7js.CAIP_NAMESPACE_REGEX; exports.CAIP_REFERENCE_REGEX = _chunkU7ZUGCE7js.CAIP_REFERENCE_REGEX; exports.CaipAccountAddressStruct = _chunkU7ZUGCE7js.CaipAccountAddressStruct; exports.CaipAccountIdStruct = _chunkU7ZUGCE7js.CaipAccountIdStruct; exports.CaipChainIdStruct = _chunkU7ZUGCE7js.CaipChainIdStruct; exports.CaipNamespaceStruct = _chunkU7ZUGCE7js.CaipNamespaceStruct; exports.CaipReferenceStruct = _chunkU7ZUGCE7js.CaipReferenceStruct; exports.ChecksumStruct = _chunkE4C7EW4Rjs.ChecksumStruct; exports.Duration = _chunk4RMX5YWEjs.Duration; exports.ESCAPE_CHARACTERS_REGEXP = _chunkQVEKZRZ2js.ESCAPE_CHARACTERS_REGEXP; exports.FrozenMap = _chunkZ2RGWDD7js.FrozenMap; exports.FrozenSet = _chunkZ2RGWDD7js.FrozenSet; exports.HexAddressStruct = _chunkQEPVHEP7js.HexAddressStruct; exports.HexChecksumAddressStruct = _chunkQEPVHEP7js.HexChecksumAddressStruct; exports.HexStruct = _chunkQEPVHEP7js.HexStruct; exports.JsonRpcErrorStruct = _chunkOLLG4H35js.JsonRpcErrorStruct; exports.JsonRpcFailureStruct = _chunkOLLG4H35js.JsonRpcFailureStruct; exports.JsonRpcIdStruct = _chunkOLLG4H35js.JsonRpcIdStruct; exports.JsonRpcNotificationStruct = _chunkOLLG4H35js.JsonRpcNotificationStruct; exports.JsonRpcParamsStruct = _chunkOLLG4H35js.JsonRpcParamsStruct; exports.JsonRpcRequestStruct = _chunkOLLG4H35js.JsonRpcRequestStruct; exports.JsonRpcResponseStruct = _chunkOLLG4H35js.JsonRpcResponseStruct; exports.JsonRpcSuccessStruct = _chunkOLLG4H35js.JsonRpcSuccessStruct; exports.JsonRpcVersionStruct = _chunkOLLG4H35js.JsonRpcVersionStruct; exports.JsonSize = _chunkQVEKZRZ2js.JsonSize; exports.JsonStruct = _chunkOLLG4H35js.JsonStruct; exports.PendingJsonRpcResponseStruct = _chunkOLLG4H35js.PendingJsonRpcResponseStruct; exports.StrictHexStruct = _chunkQEPVHEP7js.StrictHexStruct; exports.UnsafeJsonStruct = _chunkOLLG4H35js.UnsafeJsonStruct; exports.VersionRangeStruct = _chunk4D6XQBHAjs.VersionRangeStruct; exports.VersionStruct = _chunk4D6XQBHAjs.VersionStruct; exports.add0x = _chunkQEPVHEP7js.add0x; exports.assert = _chunk6ZDHSOUVjs.assert; exports.assertExhaustive = _chunk6ZDHSOUVjs.assertExhaustive; exports.assertIsBytes = _chunkQEPVHEP7js.assertIsBytes; exports.assertIsHexString = _chunkQEPVHEP7js.assertIsHexString; exports.assertIsJsonRpcError = _chunkOLLG4H35js.assertIsJsonRpcError; exports.assertIsJsonRpcFailure = _chunkOLLG4H35js.assertIsJsonRpcFailure; exports.assertIsJsonRpcNotification = _chunkOLLG4H35js.assertIsJsonRpcNotification; exports.assertIsJsonRpcRequest = _chunkOLLG4H35js.assertIsJsonRpcRequest; exports.assertIsJsonRpcResponse = _chunkOLLG4H35js.assertIsJsonRpcResponse; exports.assertIsJsonRpcSuccess = _chunkOLLG4H35js.assertIsJsonRpcSuccess; exports.assertIsPendingJsonRpcResponse = _chunkOLLG4H35js.assertIsPendingJsonRpcResponse; exports.assertIsSemVerRange = _chunk4D6XQBHAjs.assertIsSemVerRange; exports.assertIsSemVerVersion = _chunk4D6XQBHAjs.assertIsSemVerVersion; exports.assertIsStrictHexString = _chunkQEPVHEP7js.assertIsStrictHexString; exports.assertStruct = _chunk6ZDHSOUVjs.assertStruct; exports.base64 = _chunk6NZW4WK4js.base64; exports.base64ToBytes = _chunkQEPVHEP7js.base64ToBytes; exports.bigIntToBytes = _chunkQEPVHEP7js.bigIntToBytes; exports.bigIntToHex = _chunkVFXTVNXNjs.bigIntToHex; exports.bytesToBase64 = _chunkQEPVHEP7js.bytesToBase64; exports.bytesToBigInt = _chunkQEPVHEP7js.bytesToBigInt; exports.bytesToHex = _chunkQEPVHEP7js.bytesToHex; exports.bytesToNumber = _chunkQEPVHEP7js.bytesToNumber; exports.bytesToSignedBigInt = _chunkQEPVHEP7js.bytesToSignedBigInt; exports.bytesToString = _chunkQEPVHEP7js.bytesToString; exports.calculateNumberSize = _chunkQVEKZRZ2js.calculateNumberSize; exports.calculateStringSize = _chunkQVEKZRZ2js.calculateStringSize; exports.concatBytes = _chunkQEPVHEP7js.concatBytes; exports.createBigInt = _chunkDHVKFDHQjs.createBigInt; exports.createBytes = _chunkDHVKFDHQjs.createBytes; exports.createDataView = _chunkQEPVHEP7js.createDataView; exports.createHex = _chunkDHVKFDHQjs.createHex; exports.createModuleLogger = _chunk2LBGT4GHjs.createModuleLogger; exports.createNumber = _chunkDHVKFDHQjs.createNumber; exports.createProjectLogger = _chunk2LBGT4GHjs.createProjectLogger; exports.exactOptional = _chunkOLLG4H35js.exactOptional; exports.getChecksumAddress = _chunkQEPVHEP7js.getChecksumAddress; exports.getErrorMessage = _chunkIZC266HSjs.getErrorMessage; exports.getJsonRpcIdValidator = _chunkOLLG4H35js.getJsonRpcIdValidator; exports.getJsonSize = _chunkOLLG4H35js.getJsonSize; exports.getKnownPropertyNames = _chunkQVEKZRZ2js.getKnownPropertyNames; exports.getSafeJson = _chunkOLLG4H35js.getSafeJson; exports.gtRange = _chunk4D6XQBHAjs.gtRange; exports.gtVersion = _chunk4D6XQBHAjs.gtVersion; exports.hasProperty = _chunkQVEKZRZ2js.hasProperty; exports.hexToBigInt = _chunkVFXTVNXNjs.hexToBigInt; exports.hexToBytes = _chunkQEPVHEP7js.hexToBytes; exports.hexToNumber = _chunkVFXTVNXNjs.hexToNumber; exports.inMilliseconds = _chunk4RMX5YWEjs.inMilliseconds; exports.isASCII = _chunkQVEKZRZ2js.isASCII; exports.isBytes = _chunkQEPVHEP7js.isBytes; exports.isCaipAccountAddress = _chunkU7ZUGCE7js.isCaipAccountAddress; exports.isCaipAccountId = _chunkU7ZUGCE7js.isCaipAccountId; exports.isCaipChainId = _chunkU7ZUGCE7js.isCaipChainId; exports.isCaipNamespace = _chunkU7ZUGCE7js.isCaipNamespace; exports.isCaipReference = _chunkU7ZUGCE7js.isCaipReference; exports.isErrorWithCode = _chunkIZC266HSjs.isErrorWithCode; exports.isErrorWithMessage = _chunkIZC266HSjs.isErrorWithMessage; exports.isErrorWithStack = _chunkIZC266HSjs.isErrorWithStack; exports.isHexString = _chunkQEPVHEP7js.isHexString; exports.isJsonRpcError = _chunkOLLG4H35js.isJsonRpcError; exports.isJsonRpcFailure = _chunkOLLG4H35js.isJsonRpcFailure; exports.isJsonRpcNotification = _chunkOLLG4H35js.isJsonRpcNotification; exports.isJsonRpcRequest = _chunkOLLG4H35js.isJsonRpcRequest; exports.isJsonRpcResponse = _chunkOLLG4H35js.isJsonRpcResponse; exports.isJsonRpcSuccess = _chunkOLLG4H35js.isJsonRpcSuccess; exports.isNonEmptyArray = _chunkQVEKZRZ2js.isNonEmptyArray; exports.isNullOrUndefined = _chunkQVEKZRZ2js.isNullOrUndefined; exports.isObject = _chunkQVEKZRZ2js.isObject; exports.isPendingJsonRpcResponse = _chunkOLLG4H35js.isPendingJsonRpcResponse; exports.isPlainObject = _chunkQVEKZRZ2js.isPlainObject; exports.isStrictHexString = _chunkQEPVHEP7js.isStrictHexString; exports.isValidChecksumAddress = _chunkQEPVHEP7js.isValidChecksumAddress; exports.isValidHexAddress = _chunkQEPVHEP7js.isValidHexAddress; exports.isValidJson = _chunkOLLG4H35js.isValidJson; exports.isValidSemVerRange = _chunk4D6XQBHAjs.isValidSemVerRange; exports.isValidSemVerVersion = _chunk4D6XQBHAjs.isValidSemVerVersion; exports.jsonrpc2 = _chunkOLLG4H35js.jsonrpc2; exports.numberToBytes = _chunkQEPVHEP7js.numberToBytes; exports.numberToHex = _chunkVFXTVNXNjs.numberToHex; exports.object = _chunkOLLG4H35js.object; exports.parseCaipAccountId = _chunkU7ZUGCE7js.parseCaipAccountId; exports.parseCaipChainId = _chunkU7ZUGCE7js.parseCaipChainId; exports.remove0x = _chunkQEPVHEP7js.remove0x; exports.satisfiesVersionRange = _chunk4D6XQBHAjs.satisfiesVersionRange; exports.signedBigIntToBytes = _chunkQEPVHEP7js.signedBigIntToBytes; exports.stringToBytes = _chunkQEPVHEP7js.stringToBytes; exports.timeSince = _chunk4RMX5YWEjs.timeSince; exports.valueToBytes = _chunkQEPVHEP7js.valueToBytes; exports.wrapError = _chunkIZC266HSjs.wrapError;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorValues = exports.errorCodes = void 0;\nexports.errorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n};\n/* eslint-disable @typescript-eslint/naming-convention */\nexports.errorValues = {\n '-32700': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n },\n '-32600': {\n standard: 'JSON RPC 2.0',\n message: 'The JSON sent is not a valid Request object.',\n },\n '-32601': {\n standard: 'JSON RPC 2.0',\n message: 'The method does not exist / is not available.',\n },\n '-32602': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid method parameter(s).',\n },\n '-32603': {\n standard: 'JSON RPC 2.0',\n message: 'Internal JSON-RPC error.',\n },\n '-32000': {\n standard: 'EIP-1474',\n message: 'Invalid input.',\n },\n '-32001': {\n standard: 'EIP-1474',\n message: 'Resource not found.',\n },\n '-32002': {\n standard: 'EIP-1474',\n message: 'Resource unavailable.',\n },\n '-32003': {\n standard: 'EIP-1474',\n message: 'Transaction rejected.',\n },\n '-32004': {\n standard: 'EIP-1474',\n message: 'Method not supported.',\n },\n '-32005': {\n standard: 'EIP-1474',\n message: 'Request limit exceeded.',\n },\n '4001': {\n standard: 'EIP-1193',\n message: 'User rejected the request.',\n },\n '4100': {\n standard: 'EIP-1193',\n message: 'The requested account and/or method has not been authorized by the user.',\n },\n '4200': {\n standard: 'EIP-1193',\n message: 'The requested method is not supported by this Ethereum provider.',\n },\n '4900': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from all chains.',\n },\n '4901': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from the specified chain.',\n },\n};\n/* eslint-enable @typescript-eslint/naming-convention */\n//# sourceMappingURL=error-constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeCause = exports.serializeError = exports.isValidCode = exports.getMessageFromCode = exports.JSON_RPC_SERVER_ERROR_MESSAGE = void 0;\nconst utils_1 = require(\"@metamask/utils\");\nconst error_constants_1 = require(\"./error-constants\");\nconst FALLBACK_ERROR_CODE = error_constants_1.errorCodes.rpc.internal;\nconst FALLBACK_MESSAGE = 'Unspecified error message. This is a bug, please report it.';\nconst FALLBACK_ERROR = {\n code: FALLBACK_ERROR_CODE,\n message: getMessageFromCode(FALLBACK_ERROR_CODE),\n};\nexports.JSON_RPC_SERVER_ERROR_MESSAGE = 'Unspecified server error.';\n/**\n * Gets the message for a given code, or a fallback message if the code has\n * no corresponding message.\n *\n * @param code - The error code.\n * @param fallbackMessage - The fallback message to use if the code has no\n * corresponding message.\n * @returns The message for the given code, or the fallback message if the code\n * has no corresponding message.\n */\nfunction getMessageFromCode(code, fallbackMessage = FALLBACK_MESSAGE) {\n if (isValidCode(code)) {\n const codeString = code.toString();\n if ((0, utils_1.hasProperty)(error_constants_1.errorValues, codeString)) {\n return error_constants_1.errorValues[codeString].message;\n }\n if (isJsonRpcServerError(code)) {\n return exports.JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n }\n return fallbackMessage;\n}\nexports.getMessageFromCode = getMessageFromCode;\n/**\n * Returns whether the given code is valid.\n * A code is valid if it is an integer.\n *\n * @param code - The error code.\n * @returns Whether the given code is valid.\n */\nfunction isValidCode(code) {\n return Number.isInteger(code);\n}\nexports.isValidCode = isValidCode;\n/**\n * Serializes the given error to an Ethereum JSON RPC-compatible error object.\n * If the given error is not fully compatible, it will be preserved on the\n * returned object's data.cause property.\n *\n * @param error - The error to serialize.\n * @param options - Options bag.\n * @param options.fallbackError - The error to return if the given error is\n * not compatible. Should be a JSON serializable value.\n * @param options.shouldIncludeStack - Whether to include the error's stack\n * on the returned object.\n * @returns The serialized error.\n */\nfunction serializeError(error, { fallbackError = FALLBACK_ERROR, shouldIncludeStack = true } = {}) {\n if (!(0, utils_1.isJsonRpcError)(fallbackError)) {\n throw new Error('Must provide fallback error with integer number code and string message.');\n }\n const serialized = buildError(error, fallbackError);\n if (!shouldIncludeStack) {\n delete serialized.stack;\n }\n return serialized;\n}\nexports.serializeError = serializeError;\n/**\n * Construct a JSON-serializable object given an error and a JSON serializable `fallbackError`\n *\n * @param error - The error in question.\n * @param fallbackError - A JSON serializable fallback error.\n * @returns A JSON serializable error object.\n */\nfunction buildError(error, fallbackError) {\n // If an error specifies a `serialize` function, we call it and return the result.\n if (error &&\n typeof error === 'object' &&\n 'serialize' in error &&\n typeof error.serialize === 'function') {\n return error.serialize();\n }\n if ((0, utils_1.isJsonRpcError)(error)) {\n return error;\n }\n // If the error does not match the JsonRpcError type, use the fallback error, but try to include the original error as `cause`.\n const cause = serializeCause(error);\n const fallbackWithCause = {\n ...fallbackError,\n data: { cause },\n };\n return fallbackWithCause;\n}\n/**\n * Check if the given code is a valid JSON-RPC server error code.\n *\n * @param code - The error code.\n * @returns Whether the given code is a valid JSON-RPC server error code.\n */\nfunction isJsonRpcServerError(code) {\n return code >= -32099 && code <= -32000;\n}\n/**\n * Serializes an unknown error to be used as the `cause` in a fallback error.\n *\n * @param error - The unknown error.\n * @returns A JSON-serializable object containing as much information about the original error as possible.\n */\nfunction serializeCause(error) {\n if (Array.isArray(error)) {\n return error.map((entry) => {\n if ((0, utils_1.isValidJson)(entry)) {\n return entry;\n }\n else if ((0, utils_1.isObject)(entry)) {\n return serializeObject(entry);\n }\n return null;\n });\n }\n else if ((0, utils_1.isObject)(error)) {\n return serializeObject(error);\n }\n if ((0, utils_1.isValidJson)(error)) {\n return error;\n }\n return null;\n}\nexports.serializeCause = serializeCause;\n/**\n * Extracts all JSON-serializable properties from an object.\n *\n * @param object - The object in question.\n * @returns An object containing all the JSON-serializable properties.\n */\nfunction serializeObject(object) {\n return Object.getOwnPropertyNames(object).reduce((acc, key) => {\n const value = object[key];\n if ((0, utils_1.isValidJson)(value)) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EthereumProviderError = exports.JsonRpcError = void 0;\nconst utils_1 = require(\"@metamask/utils\");\nconst fast_safe_stringify_1 = __importDefault(require(\"fast-safe-stringify\"));\nconst utils_2 = require(\"./utils\");\n/**\n * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors\n * per EIP-1474.\n *\n * Permits any integer error code.\n */\nclass JsonRpcError extends Error {\n constructor(code, message, data) {\n if (!Number.isInteger(code)) {\n throw new Error('\"code\" must be an integer.');\n }\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a non-empty string.');\n }\n super(message);\n this.code = code;\n if (data !== undefined) {\n this.data = data;\n }\n }\n /**\n * Get the error as JSON-serializable object.\n *\n * @returns A plain object with all public class properties.\n */\n serialize() {\n const serialized = {\n code: this.code,\n message: this.message,\n };\n if (this.data !== undefined) {\n // `this.data` is not guaranteed to be a plain object, but this simplifies\n // the type guard below. We can safely cast it because we know it's a\n // JSON-serializable value.\n serialized.data = this.data;\n if ((0, utils_1.isPlainObject)(this.data)) {\n serialized.data.cause = (0, utils_2.serializeCause)(this.data.cause);\n }\n }\n if (this.stack) {\n serialized.stack = this.stack;\n }\n return serialized;\n }\n /**\n * Get a string representation of the serialized error, omitting any circular\n * references.\n *\n * @returns A string representation of the serialized error.\n */\n toString() {\n return (0, fast_safe_stringify_1.default)(this.serialize(), stringifyReplacer, 2);\n }\n}\nexports.JsonRpcError = JsonRpcError;\n/**\n * Error subclass implementing Ethereum Provider errors per EIP-1193.\n * Permits integer error codes in the [ 1000 <= 4999 ] range.\n */\nclass EthereumProviderError extends JsonRpcError {\n /**\n * Create an Ethereum Provider JSON-RPC error.\n *\n * @param code - The JSON-RPC error code. Must be an integer in the\n * `1000 <= n <= 4999` range.\n * @param message - The JSON-RPC error message.\n * @param data - Optional data to include in the error.\n */\n constructor(code, message, data) {\n if (!isValidEthProviderCode(code)) {\n throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n }\n super(code, message, data);\n }\n}\nexports.EthereumProviderError = EthereumProviderError;\n/**\n * Check if the given code is a valid JSON-RPC error code.\n *\n * @param code - The code to check.\n * @returns Whether the code is valid.\n */\nfunction isValidEthProviderCode(code) {\n return Number.isInteger(code) && code >= 1000 && code <= 4999;\n}\n/**\n * A JSON replacer function that omits circular references.\n *\n * @param _ - The key being replaced.\n * @param value - The value being replaced.\n * @returns The value to use in place of the original value.\n */\nfunction stringifyReplacer(_, value) {\n if (value === '[Circular]') {\n return undefined;\n }\n return value;\n}\n//# sourceMappingURL=classes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.providerErrors = exports.rpcErrors = void 0;\nconst classes_1 = require(\"./classes\");\nconst error_constants_1 = require(\"./error-constants\");\nconst utils_1 = require(\"./utils\");\nexports.rpcErrors = {\n /**\n * Get a JSON RPC 2.0 Parse (-32700) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n parse: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.parse, arg),\n /**\n * Get a JSON RPC 2.0 Invalid Request (-32600) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n invalidRequest: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.invalidRequest, arg),\n /**\n * Get a JSON RPC 2.0 Invalid Params (-32602) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n invalidParams: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.invalidParams, arg),\n /**\n * Get a JSON RPC 2.0 Method Not Found (-32601) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n methodNotFound: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.methodNotFound, arg),\n /**\n * Get a JSON RPC 2.0 Internal (-32603) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n internal: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.internal, arg),\n /**\n * Get a JSON RPC 2.0 Server error.\n * Permits integer error codes in the [ -32099 <= -32005 ] range.\n * Codes -32000 through -32004 are reserved by EIP-1474.\n *\n * @param opts - The error options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n server: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum RPC Server errors must provide single object argument.');\n }\n const { code } = opts;\n if (!Number.isInteger(code) || code > -32005 || code < -32099) {\n throw new Error('\"code\" must be an integer such that: -32099 <= code <= -32005');\n }\n return getJsonRpcError(code, opts);\n },\n /**\n * Get an Ethereum JSON RPC Invalid Input (-32000) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n invalidInput: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.invalidInput, arg),\n /**\n * Get an Ethereum JSON RPC Resource Not Found (-32001) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n resourceNotFound: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.resourceNotFound, arg),\n /**\n * Get an Ethereum JSON RPC Resource Unavailable (-32002) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n resourceUnavailable: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.resourceUnavailable, arg),\n /**\n * Get an Ethereum JSON RPC Transaction Rejected (-32003) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n transactionRejected: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.transactionRejected, arg),\n /**\n * Get an Ethereum JSON RPC Method Not Supported (-32004) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n methodNotSupported: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.methodNotSupported, arg),\n /**\n * Get an Ethereum JSON RPC Limit Exceeded (-32005) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\n limitExceeded: (arg) => getJsonRpcError(error_constants_1.errorCodes.rpc.limitExceeded, arg),\n};\nexports.providerErrors = {\n /**\n * Get an Ethereum Provider User Rejected Request (4001) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\n userRejectedRequest: (arg) => {\n return getEthProviderError(error_constants_1.errorCodes.provider.userRejectedRequest, arg);\n },\n /**\n * Get an Ethereum Provider Unauthorized (4100) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\n unauthorized: (arg) => {\n return getEthProviderError(error_constants_1.errorCodes.provider.unauthorized, arg);\n },\n /**\n * Get an Ethereum Provider Unsupported Method (4200) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\n unsupportedMethod: (arg) => {\n return getEthProviderError(error_constants_1.errorCodes.provider.unsupportedMethod, arg);\n },\n /**\n * Get an Ethereum Provider Not Connected (4900) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\n disconnected: (arg) => {\n return getEthProviderError(error_constants_1.errorCodes.provider.disconnected, arg);\n },\n /**\n * Get an Ethereum Provider Chain Not Connected (4901) error.\n *\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\n chainDisconnected: (arg) => {\n return getEthProviderError(error_constants_1.errorCodes.provider.chainDisconnected, arg);\n },\n /**\n * Get a custom Ethereum Provider error.\n *\n * @param opts - The error options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\n custom: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum Provider custom errors must provide single object argument.');\n }\n const { code, message, data } = opts;\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string');\n }\n return new classes_1.EthereumProviderError(code, message, data);\n },\n};\n/**\n * Get a generic JSON-RPC error class instance.\n *\n * @param code - The error code.\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link JsonRpcError} class.\n */\nfunction getJsonRpcError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new classes_1.JsonRpcError(code, message ?? (0, utils_1.getMessageFromCode)(code), data);\n}\n/**\n * Get an Ethereum Provider error class instance.\n *\n * @param code - The error code.\n * @param arg - The error message or options bag.\n * @returns An instance of the {@link EthereumProviderError} class.\n */\nfunction getEthProviderError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new classes_1.EthereumProviderError(code, message ?? (0, utils_1.getMessageFromCode)(code), data);\n}\n/**\n * Get an error message and optional data from an options bag.\n *\n * @param arg - The error message or options bag.\n * @returns A tuple containing the error message and optional data.\n */\nfunction parseOpts(arg) {\n if (arg) {\n if (typeof arg === 'string') {\n return [arg];\n }\n else if (typeof arg === 'object' && !Array.isArray(arg)) {\n const { message, data } = arg;\n if (message && typeof message !== 'string') {\n throw new Error('Must specify string message.');\n }\n return [message ?? undefined, data];\n }\n }\n return [];\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorCodes = exports.providerErrors = exports.rpcErrors = exports.getMessageFromCode = exports.serializeError = exports.serializeCause = exports.EthereumProviderError = exports.JsonRpcError = void 0;\nvar classes_1 = require(\"./classes\");\nObject.defineProperty(exports, \"JsonRpcError\", { enumerable: true, get: function () { return classes_1.JsonRpcError; } });\nObject.defineProperty(exports, \"EthereumProviderError\", { enumerable: true, get: function () { return classes_1.EthereumProviderError; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"serializeCause\", { enumerable: true, get: function () { return utils_1.serializeCause; } });\nObject.defineProperty(exports, \"serializeError\", { enumerable: true, get: function () { return utils_1.serializeError; } });\nObject.defineProperty(exports, \"getMessageFromCode\", { enumerable: true, get: function () { return utils_1.getMessageFromCode; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"rpcErrors\", { enumerable: true, get: function () { return errors_1.rpcErrors; } });\nObject.defineProperty(exports, \"providerErrors\", { enumerable: true, get: function () { return errors_1.providerErrors; } });\nvar error_constants_1 = require(\"./error-constants\");\nObject.defineProperty(exports, \"errorCodes\", { enumerable: true, get: function () { return error_constants_1.errorCodes; } });\n//# sourceMappingURL=index.js.map","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n","var empty = null;\n\nexport { empty as default };\n//# sourceMappingURL=empty.js.map\n","var once = require('once')\nvar eos = require('end-of-stream')\nvar fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport { Duplex } from 'readable-stream';\nimport { EventEmitter } from 'events';\nimport stringify from 'fast-safe-stringify';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { serializeError, rpcErrors } from '@metamask/rpc-errors';\nimport eos from 'end-of-stream';\nimport once from 'once';\nimport pump from 'pump';\n\nfunction noop() {\n return undefined;\n}\nconst SYN = \"SYN\";\nconst ACK = \"ACK\";\nconst BRK = \"BRK\";\nclass BasePostMessageStream extends Duplex {\n constructor(_ref) {\n let {\n name,\n target,\n targetWindow = window,\n targetOrigin = \"*\"\n } = _ref;\n super({\n objectMode: true\n });\n _defineProperty(this, \"_init\", void 0);\n _defineProperty(this, \"_haveSyn\", void 0);\n _defineProperty(this, \"_name\", void 0);\n _defineProperty(this, \"_target\", void 0);\n _defineProperty(this, \"_targetWindow\", void 0);\n _defineProperty(this, \"_targetOrigin\", void 0);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _defineProperty(this, \"_onMessage\", void 0);\n _defineProperty(this, \"_synIntervalId\", void 0);\n if (!name || !target) {\n throw new Error(\"Invalid input.\");\n }\n this._init = false;\n this._haveSyn = false;\n this._name = name;\n this._target = target; // target origin\n this._targetWindow = targetWindow;\n this._targetOrigin = targetOrigin;\n this._onMessage = this.onMessage.bind(this);\n this._synIntervalId = null;\n window.addEventListener(\"message\", this._onMessage, false);\n this._handShake();\n }\n _break() {\n this.cork();\n this._write(BRK, null, noop);\n this._haveSyn = false;\n this._init = false;\n }\n _handShake() {\n this._write(SYN, null, noop);\n this.cork();\n }\n _onData(data) {\n if (!this._init) {\n // listen for handshake\n if (data === SYN) {\n this._haveSyn = true;\n this._write(ACK, null, noop);\n } else if (data === ACK) {\n this._init = true;\n if (!this._haveSyn) {\n this._write(ACK, null, noop);\n }\n this.uncork();\n }\n } else if (data === BRK) {\n this._break();\n } else {\n // forward message\n try {\n this.push(data);\n } catch (err) {\n this.emit(\"error\", err);\n }\n }\n }\n _postMessage(data) {\n const originConstraint = this._targetOrigin;\n this._targetWindow.postMessage({\n target: this._target,\n data\n }, originConstraint);\n }\n onMessage(event) {\n const message = event.data;\n\n // validate message\n if (this._targetOrigin !== \"*\" && event.origin !== this._targetOrigin || event.source !== this._targetWindow || typeof message !== \"object\" || message.target !== this._name || !message.data) {\n return;\n }\n this._onData(message.data);\n }\n _read() {\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _write(data, _, cb) {\n this._postMessage(data);\n cb();\n }\n _destroy() {\n window.removeEventListener(\"message\", this._onMessage, false);\n }\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction safeApply(handler, context, args) {\n try {\n Reflect.apply(handler, context, args);\n } catch (err) {\n // Throw error after timeout so as not to interrupt the stack\n setTimeout(() => {\n throw err;\n });\n }\n}\nfunction arrayClone(arr) {\n const n = arr.length;\n const copy = new Array(n);\n for (let i = 0; i < n; i += 1) {\n copy[i] = arr[i];\n }\n return copy;\n}\nclass SafeEventEmitter extends EventEmitter {\n emit(type) {\n let doError = type === \"error\";\n const events = this._events;\n if (events !== undefined) {\n doError = doError && events.error === undefined;\n } else if (!doError) {\n return false;\n }\n\n // If there is no 'error' event listener then throw.\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (doError) {\n let er;\n if (args.length > 0) {\n [er] = args;\n }\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n const err = new Error(`Unhandled error.${er ? ` (${er.message})` : \"\"}`);\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n const handler = events[type];\n if (handler === undefined) {\n return false;\n }\n if (typeof handler === \"function\") {\n safeApply(handler, this, args);\n } else {\n const len = handler.length;\n const listeners = arrayClone(handler);\n for (let i = 0; i < len; i += 1) {\n safeApply(listeners[i], this, args);\n }\n }\n return true;\n }\n}\n\nclass SerializableError extends Error {\n constructor(_ref) {\n let {\n code,\n message,\n data\n } = _ref;\n if (!Number.isInteger(code)) {\n throw new Error(\"code must be an integer\");\n }\n if (!message || typeof message !== \"string\") {\n throw new Error(\"message must be string\");\n }\n super(message);\n _defineProperty(this, \"code\", void 0);\n _defineProperty(this, \"data\", void 0);\n this.code = code;\n if (data !== undefined) {\n this.data = data;\n }\n }\n toString() {\n return stringify({\n code: this.code,\n message: this.message,\n data: this.data,\n stack: this.stack\n });\n }\n}\n\nconst getRpcPromiseCallback = function (resolve, reject) {\n let unwrapResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n return (error, response) => {\n if (error || response.error) {\n reject(error || response.error);\n } else if (!unwrapResult || Array.isArray(response)) {\n resolve(response);\n } else {\n resolve(response.result);\n }\n };\n};\nfunction createErrorMiddleware(log) {\n return (req, res, next, end) => {\n try {\n // json-rpc-engine will terminate the request when it notices this error\n if (typeof req.method !== \"string\" || !req.method) {\n res.error = new SerializableError({\n code: -32603,\n message: \"invalid method\"\n });\n end();\n return;\n }\n next(done => {\n const {\n error\n } = res;\n if (!error) {\n return done();\n }\n log.error(`OpenLogin - RPC Error: ${error.message}`, error);\n return done();\n });\n } catch (error) {\n log.error(`OpenLogin - RPC Error thrown: ${error.message}`, error);\n res.error = new SerializableError({\n code: -32603,\n message: error.message\n });\n end();\n }\n };\n}\nfunction createStreamMiddleware() {\n const idMap = {};\n function readNoop() {\n return false;\n }\n const events = new SafeEventEmitter();\n function processResponse(res) {\n const context = idMap[res.id];\n if (!context) {\n throw new Error(`StreamMiddleware - Unknown response id \"${res.id}\"`);\n }\n delete idMap[res.id];\n // copy whole res onto original res\n Object.assign(context.res, res);\n // run callback on empty stack,\n // prevent internal stream-handler from catching errors\n setTimeout(context.end);\n }\n function processNotification(res) {\n events.emit(\"notification\", res);\n }\n function processMessage(res, _encoding, cb) {\n let err;\n try {\n const isNotification = !res.id;\n if (isNotification) {\n processNotification(res);\n } else {\n processResponse(res);\n }\n } catch (_err) {\n err = _err;\n }\n // continue processing stream\n cb(err);\n }\n const stream = new Duplex({\n objectMode: true,\n read: readNoop,\n write: processMessage\n });\n const middleware = (req, res, next, end) => {\n // write req to stream\n stream.push(req);\n // register request on id map\n idMap[req.id] = {\n req,\n res,\n next,\n end\n };\n };\n return {\n events,\n middleware,\n stream\n };\n}\nfunction createScaffoldMiddleware(handlers) {\n return (req, res, next, end) => {\n const handler = handlers[req.method];\n // if no handler, return\n if (handler === undefined) {\n return next();\n }\n // if handler is fn, call as middleware\n if (typeof handler === \"function\") {\n return handler(req, res, next, end);\n }\n // if handler is some other value, use as result\n res.result = handler;\n return end();\n };\n}\nfunction createIdRemapMiddleware() {\n return (req, res, next, _end) => {\n const originalId = req.id;\n const newId = Math.random().toString(36).slice(2);\n req.id = newId;\n res.id = newId;\n next(done => {\n req.id = originalId;\n res.id = originalId;\n done();\n });\n };\n}\nfunction createLoggerMiddleware(logger) {\n return (req, res, next, _) => {\n logger.debug(\"REQ\", req, \"RES\", res);\n next();\n };\n}\nfunction createAsyncMiddleware(asyncMiddleware) {\n return async (req, res, next, end) => {\n // nextPromise is the key to the implementation\n // it is resolved by the return handler passed to the\n // \"next\" function\n let resolveNextPromise;\n const nextPromise = new Promise(resolve => {\n resolveNextPromise = resolve;\n });\n let returnHandlerCallback = null;\n let nextWasCalled = false;\n\n // This will be called by the consumer's async middleware.\n const asyncNext = async () => {\n nextWasCalled = true;\n\n // We pass a return handler to next(). When it is called by the engine,\n // the consumer's async middleware will resume executing.\n\n next(runReturnHandlersCallback => {\n // This callback comes from JRPCEngine._runReturnHandlers\n returnHandlerCallback = runReturnHandlersCallback;\n resolveNextPromise();\n });\n await nextPromise;\n };\n try {\n await asyncMiddleware(req, res, asyncNext);\n if (nextWasCalled) {\n await nextPromise; // we must wait until the return handler is called\n returnHandlerCallback(null);\n } else {\n end(null);\n }\n } catch (err) {\n const error = err;\n if (returnHandlerCallback) {\n returnHandlerCallback(error);\n } else {\n end(error);\n }\n }\n };\n}\n\n/**\n * A JSON-RPC request and response processor.\n * Give it a stack of middleware, pass it requests, and get back responses.\n */\nclass JRPCEngine extends SafeEventEmitter {\n constructor() {\n super();\n _defineProperty(this, \"_middleware\", void 0);\n this._middleware = [];\n }\n\n /**\n * Serially executes the given stack of middleware.\n *\n * @returns An array of any error encountered during middleware execution,\n * a boolean indicating whether the request was completed, and an array of\n * middleware-defined return handlers.\n */\n static async _runAllMiddleware(req, res, middlewareStack) {\n const returnHandlers = [];\n let error = null;\n let isComplete = false;\n\n // Go down stack of middleware, call and collect optional returnHandlers\n for (const middleware of middlewareStack) {\n [error, isComplete] = await JRPCEngine._runMiddleware(req, res, middleware, returnHandlers);\n if (isComplete) {\n break;\n }\n }\n return [error, isComplete, returnHandlers.reverse()];\n }\n\n /**\n * Runs an individual middleware.\n *\n * @returns An array of any error encountered during middleware exection,\n * and a boolean indicating whether the request should end.\n */\n static _runMiddleware(req, res, middleware, returnHandlers) {\n return new Promise(resolve => {\n const end = err => {\n const error = err || res.error;\n if (error) {\n res.error = serializeError(error);\n }\n // True indicates that the request should end\n resolve([error, true]);\n };\n const next = returnHandler => {\n if (res.error) {\n end(res.error);\n } else {\n if (returnHandler) {\n if (typeof returnHandler !== \"function\") {\n end(new SerializableError({\n code: -32603,\n message: \"JRPCEngine: 'next' return handlers must be functions\"\n }));\n }\n returnHandlers.push(returnHandler);\n }\n\n // False indicates that the request should not end\n resolve([null, false]);\n }\n };\n try {\n middleware(req, res, next, end);\n } catch (error) {\n end(error);\n }\n });\n }\n\n /**\n * Serially executes array of return handlers. The request and response are\n * assumed to be in their scope.\n */\n static async _runReturnHandlers(handlers) {\n for (const handler of handlers) {\n await new Promise((resolve, reject) => {\n handler(err => err ? reject(err) : resolve());\n });\n }\n }\n\n /**\n * Throws an error if the response has neither a result nor an error, or if\n * the \"isComplete\" flag is falsy.\n */\n static _checkForCompletion(_req, res, isComplete) {\n if (!(\"result\" in res) && !(\"error\" in res)) {\n throw new SerializableError({\n code: -32603,\n message: \"Response has no error or result for request\"\n });\n }\n if (!isComplete) {\n throw new SerializableError({\n code: -32603,\n message: \"Nothing ended request\"\n });\n }\n }\n\n /**\n * Add a middleware function to the engine's middleware stack.\n *\n * @param middleware - The middleware function to add.\n */\n push(middleware) {\n this._middleware.push(middleware);\n }\n\n /**\n * Handle a JSON-RPC request, and return a response.\n *\n * @param request - The request to handle.\n * @param callback - An error-first callback that will receive the response.\n */\n\n /**\n * Handle an array of JSON-RPC requests, and return an array of responses.\n *\n * @param request - The requests to handle.\n * @param callback - An error-first callback that will receive the array of\n * responses.\n */\n\n /**\n * Handle a JSON-RPC request, and return a response.\n *\n * @param request - The request to handle.\n * @returns A promise that resolves with the response, or rejects with an\n * error.\n */\n\n /**\n * Handle an array of JSON-RPC requests, and return an array of responses.\n *\n * @param request - The requests to handle.\n * @returns A promise that resolves with the array of responses, or rejects\n * with an error.\n */\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handle(req, cb) {\n if (cb && typeof cb !== \"function\") {\n throw new Error('\"callback\" must be a function if provided.');\n }\n if (Array.isArray(req)) {\n if (cb) {\n return this._handleBatch(req, cb);\n }\n return this._handleBatch(req);\n }\n if (cb) {\n return this._handle(req, cb);\n }\n return this._promiseHandle(req);\n }\n\n /**\n * Returns this engine as a middleware function that can be pushed to other\n * engines.\n *\n * @returns This engine as a middleware function.\n */\n asMiddleware() {\n return async (req, res, next, end) => {\n try {\n const [middlewareError, isComplete, returnHandlers] = await JRPCEngine._runAllMiddleware(req, res, this._middleware);\n if (isComplete) {\n await JRPCEngine._runReturnHandlers(returnHandlers);\n return end(middlewareError);\n }\n return next(async handlerCallback => {\n try {\n await JRPCEngine._runReturnHandlers(returnHandlers);\n } catch (error) {\n return handlerCallback(error);\n }\n return handlerCallback();\n });\n } catch (error) {\n return end(error);\n }\n };\n }\n\n /**\n * Like _handle, but for batch requests.\n */\n\n /**\n * Like _handle, but for batch requests.\n */\n\n async _handleBatch(reqs, cb) {\n // The order here is important\n try {\n // 2. Wait for all requests to finish, or throw on some kind of fatal\n // error\n const responses = await Promise.all(\n // 1. Begin executing each request in the order received\n reqs.map(this._promiseHandle.bind(this)));\n\n // 3. Return batch response\n if (cb) {\n return cb(null, responses);\n }\n return responses;\n } catch (error) {\n if (cb) {\n return cb(error);\n }\n throw error;\n }\n }\n\n /**\n * A promise-wrapped _handle.\n */\n _promiseHandle(req) {\n return new Promise(resolve => {\n this._handle(req, (_err, res) => {\n // There will always be a response, and it will always have any error\n // that is caught and propagated.\n resolve(res);\n });\n });\n }\n\n /**\n * Ensures that the request object is valid, processes it, and passes any\n * error and the response object to the given callback.\n *\n * Does not reject.\n */\n async _handle(callerReq, cb) {\n if (!callerReq || Array.isArray(callerReq) || typeof callerReq !== \"object\") {\n const error = new SerializableError({\n code: -32603,\n message: \"request must be plain object\"\n });\n return cb(error, {\n id: undefined,\n jsonrpc: \"2.0\",\n error\n });\n }\n if (typeof callerReq.method !== \"string\") {\n const error = new SerializableError({\n code: -32603,\n message: \"method must be string\"\n });\n return cb(error, {\n id: callerReq.id,\n jsonrpc: \"2.0\",\n error\n });\n }\n const req = _objectSpread({}, callerReq);\n const res = {\n id: req.id,\n jsonrpc: req.jsonrpc\n };\n let error = null;\n try {\n await this._processRequest(req, res);\n } catch (_error) {\n // A request handler error, a re-thrown middleware error, or something\n // unexpected.\n error = _error;\n }\n if (error) {\n // Ensure no result is present on an errored response\n delete res.result;\n if (!res.error) {\n res.error = serializeError(error);\n }\n }\n return cb(error, res);\n }\n\n /**\n * For the given request and response, runs all middleware and their return\n * handlers, if any, and ensures that internal request processing semantics\n * are satisfied.\n */\n async _processRequest(req, res) {\n const [error, isComplete, returnHandlers] = await JRPCEngine._runAllMiddleware(req, res, this._middleware);\n\n // Throw if \"end\" was not called, or if the response has neither a result\n // nor an error.\n JRPCEngine._checkForCompletion(req, res, isComplete);\n\n // The return handlers should run even if an error was encountered during\n // middleware processing.\n await JRPCEngine._runReturnHandlers(returnHandlers);\n\n // Now we re-throw the middleware processing error, if any, to catch it\n // further up the call chain.\n if (error) {\n throw error;\n }\n }\n}\nfunction mergeMiddleware(middlewareStack) {\n const engine = new JRPCEngine();\n middlewareStack.forEach(middleware => engine.push(middleware));\n return engine.asMiddleware();\n}\nfunction createEngineStream(opts) {\n if (!opts || !opts.engine) {\n throw new Error(\"Missing engine parameter!\");\n }\n const {\n engine\n } = opts;\n // eslint-disable-next-line prefer-const\n let stream;\n function read() {\n return undefined;\n }\n function write(req, _encoding, cb) {\n engine.handle(req, (_err, res) => {\n stream.push(res);\n });\n cb();\n }\n stream = new Duplex({\n objectMode: true,\n read,\n write\n });\n\n // forward notifications\n if (engine.on) {\n engine.on(\"notification\", message => {\n stream.push(message);\n });\n }\n return stream;\n}\nfunction providerFromEngine(engine) {\n const provider = new SafeEventEmitter();\n // handle both rpc send methods\n provider.sendAsync = async req => {\n const res = await engine.handle(req);\n if (res.error) {\n var _res$error, _res$error2;\n const err = serializeError(res.error, {\n fallbackError: {\n message: ((_res$error = res.error) === null || _res$error === void 0 ? void 0 : _res$error.message) || res.error.toString(),\n code: ((_res$error2 = res.error) === null || _res$error2 === void 0 ? void 0 : _res$error2.code) || -32603\n }\n });\n throw rpcErrors.internal(err);\n }\n return res.result;\n };\n provider.send = (req, callback) => {\n if (typeof callback !== \"function\") {\n throw new Error('Must provide callback to \"send\" method.');\n }\n engine.handle(req, callback);\n };\n // forward notifications\n if (engine.on) {\n engine.on(\"notification\", message => {\n provider.emit(\"data\", null, message);\n });\n }\n provider.request = async args => {\n const req = _objectSpread(_objectSpread({}, args), {}, {\n id: Math.random().toString(36).slice(2),\n jsonrpc: \"2.0\"\n });\n const res = await provider.sendAsync(req);\n return res;\n };\n return provider;\n}\nfunction providerFromMiddleware(middleware) {\n const engine = new JRPCEngine();\n engine.push(middleware);\n const provider = providerFromEngine(engine);\n return provider;\n}\nfunction providerAsMiddleware(provider) {\n return async (req, res, _next, end) => {\n // send request to provider\n try {\n const providerRes = await provider.sendAsync(req);\n res.result = providerRes;\n return end();\n } catch (error) {\n return end(error);\n }\n };\n}\n\nclass Substream extends Duplex {\n constructor(_ref) {\n let {\n parent,\n name\n } = _ref;\n super({\n objectMode: true\n });\n _defineProperty(this, \"_parent\", void 0);\n _defineProperty(this, \"_name\", void 0);\n this._parent = parent;\n this._name = name;\n }\n\n /**\n * Explicitly sets read operations to a no-op.\n */\n _read() {\n return undefined;\n }\n\n /**\n * Called when data should be written to this writable stream.\n *\n * @param chunk - Arbitrary object to write\n * @param encoding - Encoding to use when writing payload\n * @param callback - Called when writing is complete or an error occurs\n */\n _write(chunk, _encoding, callback) {\n this._parent.push({\n name: this._name,\n data: chunk\n });\n callback();\n }\n}\n\nconst IGNORE_SUBSTREAM = Symbol(\"IGNORE_SUBSTREAM\");\nclass ObjectMultiplex extends Duplex {\n constructor() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n super(_objectSpread(_objectSpread({}, opts), {}, {\n objectMode: true\n }));\n _defineProperty(this, \"_substreams\", void 0);\n _defineProperty(this, \"getStream\", void 0);\n this._substreams = {};\n }\n createStream(name) {\n // validate name\n if (!name) {\n throw new Error(\"ObjectMultiplex - name must not be empty\");\n }\n if (this._substreams[name]) {\n throw new Error(`ObjectMultiplex - Substream for name \"${name}\" already exists`);\n }\n\n // create substream\n const substream = new Substream({\n parent: this,\n name\n });\n this._substreams[name] = substream;\n\n // listen for parent stream to end\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n anyStreamEnd(this, _error => substream.destroy(_error || undefined));\n return substream;\n }\n\n // ignore streams (dont display orphaned data warning)\n ignoreStream(name) {\n // validate name\n if (!name) {\n throw new Error(\"ObjectMultiplex - name must not be empty\");\n }\n if (this._substreams[name]) {\n throw new Error(`ObjectMultiplex - Substream for name \"${name}\" already exists`);\n }\n // set\n this._substreams[name] = IGNORE_SUBSTREAM;\n }\n _read() {\n return undefined;\n }\n _write(chunk, _encoding, callback) {\n const {\n name,\n data\n } = chunk;\n if (!name) {\n window.console.warn(`ObjectMultiplex - malformed chunk without name \"${chunk}\"`);\n return callback();\n }\n\n // get corresponding substream\n const substream = this._substreams[name];\n if (!substream) {\n window.console.warn(`ObjectMultiplex - orphaned data for stream \"${name}\"`);\n return callback();\n }\n\n // push data into substream\n if (substream !== IGNORE_SUBSTREAM) {\n substream.push(data);\n }\n return callback();\n }\n}\n\n// util\nfunction anyStreamEnd(stream, _cb) {\n const cb = once(_cb);\n eos(stream, {\n readable: false\n }, cb);\n eos(stream, {\n writable: false\n }, cb);\n}\nfunction setupMultiplex(stream) {\n const mux = new ObjectMultiplex();\n mux.getStream = function streamHelper(name) {\n if (this._substreams[name]) {\n return this._substreams[name];\n }\n return this.createStream(name);\n };\n pump(stream, mux, stream, err => {\n if (err) window.console.error(err);\n });\n return mux;\n}\n\nclass PostMessageStream extends BasePostMessageStream {\n _postMessage(data) {\n let originConstraint = this._targetOrigin;\n if (typeof data === \"object\") {\n const dataObj = data;\n if (typeof dataObj.data === \"object\") {\n const dataObjData = dataObj.data;\n if (Array.isArray(dataObjData.params) && dataObjData.params.length > 0) {\n const dataObjDataParam = dataObjData.params[0];\n if (dataObjDataParam._origin) {\n originConstraint = dataObjDataParam._origin;\n }\n\n // add a constraint for the response\n dataObjDataParam._origin = window.location.origin;\n }\n }\n }\n this._targetWindow.postMessage({\n target: this._target,\n data\n }, originConstraint);\n }\n}\n\nexport { BasePostMessageStream, IGNORE_SUBSTREAM, JRPCEngine, ObjectMultiplex, PostMessageStream, SafeEventEmitter, SerializableError, Substream, createAsyncMiddleware, createEngineStream, createErrorMiddleware, createIdRemapMiddleware, createLoggerMiddleware, createScaffoldMiddleware, createStreamMiddleware, getRpcPromiseCallback, mergeMiddleware, providerAsMiddleware, providerFromEngine, providerFromMiddleware, setupMultiplex };\n//# sourceMappingURL=openloginJrpc.esm.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction padString(input) {\n var segmentLength = 4;\n var stringLength = input.length;\n var diff = stringLength % segmentLength;\n if (!diff) {\n return input;\n }\n var position = stringLength;\n var padLength = segmentLength - diff;\n var paddedStringLength = stringLength + padLength;\n var buffer = Buffer.alloc(paddedStringLength);\n buffer.write(input);\n while (padLength--) {\n buffer.write(\"=\", position++);\n }\n return buffer.toString();\n}\nexports.default = padString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pad_string_1 = require(\"./pad-string\");\nfunction encode(input, encoding) {\n if (encoding === void 0) { encoding = \"utf8\"; }\n if (Buffer.isBuffer(input)) {\n return fromBase64(input.toString(\"base64\"));\n }\n return fromBase64(Buffer.from(input, encoding).toString(\"base64\"));\n}\n;\nfunction decode(base64url, encoding) {\n if (encoding === void 0) { encoding = \"utf8\"; }\n return Buffer.from(toBase64(base64url), \"base64\").toString(encoding);\n}\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n return pad_string_1.default(base64url)\n .replace(/\\-/g, \"+\")\n .replace(/_/g, \"/\");\n}\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, \"\")\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\");\n}\nfunction toBuffer(base64url) {\n return Buffer.from(toBase64(base64url), \"base64\");\n}\nvar base64url = encode;\nbase64url.encode = encode;\nbase64url.decode = decode;\nbase64url.toBase64 = toBase64;\nbase64url.fromBase64 = fromBase64;\nbase64url.toBuffer = toBuffer;\nexports.default = base64url;\n","module.exports = require('./dist/base64url').default;\nmodule.exports.default = module.exports;\n","const TORUS_LEGACY_NETWORK = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n CYAN: \"cyan\",\n AQUA: \"aqua\",\n CELESTE: \"celeste\"\n};\nconst TORUS_SAPPHIRE_NETWORK = {\n SAPPHIRE_DEVNET: \"sapphire_devnet\",\n SAPPHIRE_MAINNET: \"sapphire_mainnet\"\n};\nconst PROXY_CONTRACT_ADDRESS = {\n [TORUS_LEGACY_NETWORK.MAINNET]: \"0xf20336e16B5182637f09821c27BDe29b0AFcfe80\",\n [TORUS_LEGACY_NETWORK.TESTNET]: \"0xd084604e5FA387FbC2Da8bAab07fDD6aDED4614A\",\n [TORUS_LEGACY_NETWORK.CYAN]: \"0x9f072ba19b3370e512aa1b4bfcdaf97283168005\",\n [TORUS_LEGACY_NETWORK.AQUA]: \"0x29Dea82a0509153b91040ee13cDBba0f03efb625\",\n [TORUS_LEGACY_NETWORK.CELESTE]: \"0x6Bffb4e89453069E7487f0fa5c9f4a2D771cce6c\"\n};\nconst MULTI_CLUSTER_NETWORKS = [\n// TORUS_LEGACY_NETWORK.AQUA,\nTORUS_LEGACY_NETWORK.CELESTE\n// TORUS_LEGACY_NETWORK.CYAN,\n];\n\nconst LEGACY_NETWORKS_ROUTE_MAP = {\n [TORUS_LEGACY_NETWORK.AQUA]: {\n migrationCompleted: true,\n networkIdentifier: \"aqua\",\n networkMigratedTo: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET\n },\n [TORUS_LEGACY_NETWORK.CELESTE]: {\n migrationCompleted: false,\n networkIdentifier: \"celeste\",\n networkMigratedTo: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET\n },\n [TORUS_LEGACY_NETWORK.CYAN]: {\n migrationCompleted: true,\n networkIdentifier: \"cyan\",\n networkMigratedTo: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET\n },\n [TORUS_LEGACY_NETWORK.MAINNET]: {\n migrationCompleted: true,\n networkIdentifier: \"mainnet\",\n networkMigratedTo: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET\n },\n [TORUS_LEGACY_NETWORK.TESTNET]: {\n migrationCompleted: true,\n networkIdentifier: \"teal\",\n networkMigratedTo: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET\n }\n};\nconst NETWORK_MAP = {\n [TORUS_LEGACY_NETWORK.MAINNET]: \"mainnet\",\n [TORUS_LEGACY_NETWORK.TESTNET]: \"goerli\",\n [TORUS_LEGACY_NETWORK.CYAN]: \"polygon-mainnet\",\n [TORUS_LEGACY_NETWORK.AQUA]: \"polygon-mainnet\",\n [TORUS_LEGACY_NETWORK.CELESTE]: \"polygon-mainnet\"\n};\nconst SIGNER_MAP = {\n [TORUS_LEGACY_NETWORK.MAINNET]: \"https://signer.tor.us\",\n [TORUS_LEGACY_NETWORK.TESTNET]: \"https://signer.tor.us\",\n [TORUS_LEGACY_NETWORK.CYAN]: \"https://signer-polygon.tor.us\",\n [TORUS_LEGACY_NETWORK.AQUA]: \"https://signer-polygon.tor.us\",\n [TORUS_LEGACY_NETWORK.CELESTE]: \"https://signer-polygon.tor.us\"\n};\n\nconst abi = [{\n inputs: [{\n internalType: \"string\",\n name: \"_verifier\",\n type: \"string\"\n }, {\n internalType: \"bytes32\",\n name: \"hashedVerifierId\",\n type: \"bytes32\"\n }],\n name: \"getNodeSet\",\n outputs: [{\n internalType: \"uint256\",\n name: \"currentEpoch\",\n type: \"uint256\"\n }, {\n internalType: \"string[]\",\n name: \"torusNodeEndpoints\",\n type: \"string[]\"\n }, {\n internalType: \"uint256[]\",\n name: \"torusNodePubX\",\n type: \"uint256[]\"\n }, {\n internalType: \"uint256[]\",\n name: \"torusNodePubY\",\n type: \"uint256[]\"\n }, {\n internalType: \"uint256[]\",\n name: \"torusIndexes\",\n type: \"uint256[]\"\n }],\n stateMutability: \"view\",\n type: \"function\"\n}];\n\nexport { LEGACY_NETWORKS_ROUTE_MAP, MULTI_CLUSTER_NETWORKS, NETWORK_MAP, PROXY_CONTRACT_ADDRESS, SIGNER_MAP, TORUS_LEGACY_NETWORK, TORUS_SAPPHIRE_NETWORK, abi };\n//# sourceMappingURL=constants.esm.js.map\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport base64urlLib from 'base64url';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { TORUS_SAPPHIRE_NETWORK, TORUS_LEGACY_NETWORK } from '@toruslabs/constants';\nexport { TORUS_LEGACY_NETWORK, TORUS_SAPPHIRE_NETWORK } from '@toruslabs/constants';\n\nconst base64url = base64urlLib;\nfunction safebtoa(str) {\n return base64url.encode(str);\n}\nfunction safeatob(str) {\n // Going backwards: from bytestream, to percent-encoding, to original string.\n return base64url.decode(str);\n}\nfunction base64toJSON(b64str) {\n return JSON.parse(base64url.decode(b64str));\n}\nfunction jsonToBase64(json) {\n return base64url.encode(JSON.stringify(json));\n}\nfunction storageAvailable(type) {\n let storageExists = false;\n let storageLength = 0;\n let storage;\n try {\n storage = window[type];\n storageExists = true;\n storageLength = storage.length;\n const x = \"__storage_test__\";\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (err) {\n const error = err;\n return error && (\n // everything except Firefox\n error.code === 22 ||\n // Firefox\n error.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n error.name === \"QuotaExceededError\" ||\n // Firefox\n error.name === \"NS_ERROR_DOM_QUOTA_REACHED\") &&\n // acknowledge QuotaExceededError only if there's something already stored\n storageExists && storageLength !== 0;\n }\n}\n\nclass MemoryStore {\n constructor() {\n _defineProperty(this, \"store\", {});\n }\n getItem(key) {\n return this.store[key] || null;\n }\n setItem(key, value) {\n this.store[key] = value;\n }\n}\nclass BrowserStorage {\n constructor(storeKey, storage) {\n _defineProperty(this, \"storage\", void 0);\n _defineProperty(this, \"_storeKey\", void 0);\n this.storage = storage;\n this._storeKey = storeKey;\n try {\n if (!storage.getItem(storeKey)) {\n this.resetStore();\n }\n } catch (error) {\n // Storage is not available\n }\n }\n static getInstance(key) {\n let storageKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"local\";\n if (!this.instance) {\n let storage;\n if (storageKey === \"local\" && storageAvailable(\"localStorage\")) {\n storage = window.localStorage;\n } else if (storageKey === \"session\" && storageAvailable(\"sessionStorage\")) {\n storage = window.sessionStorage;\n } else {\n storage = new MemoryStore();\n }\n this.instance = new this(key, storage);\n }\n return this.instance;\n }\n toJSON() {\n return this.storage.getItem(this._storeKey);\n }\n resetStore() {\n const currStore = this.getStore();\n this.storage.setItem(this._storeKey, JSON.stringify({}));\n return currStore;\n }\n getStore() {\n return JSON.parse(this.storage.getItem(this._storeKey) || \"{}\");\n }\n get(key) {\n const store = JSON.parse(this.storage.getItem(this._storeKey) || \"{}\");\n return store[key];\n }\n set(key, value) {\n const store = JSON.parse(this.storage.getItem(this._storeKey) || \"{}\");\n store[key] = value;\n this.storage.setItem(this._storeKey, JSON.stringify(store));\n }\n}\n// eslint-disable-next-line no-use-before-define\n_defineProperty(BrowserStorage, \"instance\", void 0);\n\nconst storeKey = \"openlogin_store\";\nconst UX_MODE = {\n POPUP: \"popup\",\n REDIRECT: \"redirect\"\n};\nconst OPENLOGIN_NETWORK = _objectSpread(_objectSpread({}, TORUS_SAPPHIRE_NETWORK), TORUS_LEGACY_NETWORK);\nconst SUPPORTED_KEY_CURVES = {\n SECP256K1: \"secp256k1\",\n ED25519: \"ed25519\"\n};\nconst LOGIN_PROVIDER = {\n GOOGLE: \"google\",\n FACEBOOK: \"facebook\",\n REDDIT: \"reddit\",\n DISCORD: \"discord\",\n TWITCH: \"twitch\",\n APPLE: \"apple\",\n LINE: \"line\",\n GITHUB: \"github\",\n KAKAO: \"kakao\",\n LINKEDIN: \"linkedin\",\n TWITTER: \"twitter\",\n WEIBO: \"weibo\",\n WECHAT: \"wechat\",\n EMAIL_PASSWORDLESS: \"email_passwordless\",\n SMS_PASSWORDLESS: \"sms_passwordless\",\n WEBAUTHN: \"webauthn\",\n JWT: \"jwt\"\n};\nconst MFA_LEVELS = {\n DEFAULT: \"default\",\n OPTIONAL: \"optional\",\n MANDATORY: \"mandatory\",\n NONE: \"none\"\n};\nconst OPENLOGIN_ACTIONS = {\n LOGIN: \"login\",\n ENABLE_MFA: \"enable_mfa\",\n MODIFY_MFA: \"modify_mfa\"\n};\nconst BUILD_ENV = {\n PRODUCTION: \"production\",\n DEVELOPMENT: \"development\",\n STAGING: \"staging\",\n TESTING: \"testing\"\n};\n\n/**\n * {@label loginProviderType}\n */\n\n// autocomplete workaround https://github.com/microsoft/TypeScript/issues/29729\n\nconst LANGUAGES = {\n en: \"en\",\n ja: \"ja\",\n ko: \"ko\",\n de: \"de\",\n zh: \"zh\",\n es: \"es\",\n fr: \"fr\",\n pt: \"pt\",\n nl: \"nl\"\n};\nconst THEME_MODES = {\n light: \"light\",\n dark: \"dark\",\n auto: \"auto\"\n};\nconst MFA_FACTOR = {\n DEVICE: \"deviceShareFactor\",\n BACKUP_SHARE: \"backUpShareFactor\",\n SOCIAL_BACKUP: \"socialBackupFactor\",\n PASSWORD: \"passwordFactor\"\n};\n\nexport { BUILD_ENV, BrowserStorage, LANGUAGES, LOGIN_PROVIDER, MFA_FACTOR, MFA_LEVELS, MemoryStore, OPENLOGIN_ACTIONS, OPENLOGIN_NETWORK, SUPPORTED_KEY_CURVES, THEME_MODES, UX_MODE, base64toJSON, base64url, jsonToBase64, safeatob, safebtoa, storageAvailable, storeKey };\n//# sourceMappingURL=openloginUtils.esm.js.map\n","function fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;\n}\nfunction fixStack(target, fn) {\n if (fn === void 0) {\n fn = target.constructor;\n }\n\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n}\n\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar CustomError = function (_super) {\n __extends(CustomError, _super);\n\n function CustomError(message, options) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message, options) || this;\n\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false,\n configurable: true\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n\n return CustomError;\n}(Error);\n\nvar __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nfunction customErrorFactory(fn, parent) {\n if (parent === void 0) {\n parent = Error;\n }\n\n function CustomError() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!(this instanceof CustomError)) return new (CustomError.bind.apply(CustomError, __spreadArray([void 0], args, false)))();\n parent.apply(this, args);\n Object.defineProperty(this, 'name', {\n value: fn.name || parent.name,\n enumerable: false,\n configurable: true\n });\n fn.apply(this, args);\n fixStack(this, CustomError);\n }\n\n return Object.defineProperties(CustomError, {\n prototype: {\n value: Object.create(parent.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n configurable: true\n }\n })\n }\n });\n}\n\nexport { CustomError, customErrorFactory };\n//# sourceMappingURL=custom-error.mjs.map\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport merge from 'lodash.merge';\nimport logLevel, { levels } from 'loglevel';\n\nconst log = logLevel.getLogger(\"http-helpers\");\nlog.setLevel(levels.INFO);\nlet apiKey = \"torus-default\";\nlet embedHost = \"\";\n\n// #region API Keys\nconst gatewayAuthHeader = \"x-api-key\";\nconst gatewayEmbedHostHeader = \"x-embed-host\";\nlet sentry = null;\nconst tracingOrigins = [];\nconst tracingPaths = [];\nfunction enableSentryTracing(_sentry, _tracingOrigins, _tracingPaths) {\n sentry = _sentry;\n tracingOrigins.push(..._tracingOrigins);\n tracingPaths.push(..._tracingPaths);\n}\nfunction setEmbedHost(embedHost_) {\n embedHost = embedHost_;\n}\nfunction clearEmbedHost() {\n embedHost = \"\";\n}\nfunction getEmbedHost() {\n return embedHost;\n}\nfunction setAPIKey(apiKey_) {\n apiKey = apiKey_;\n}\nfunction clearAPIKey() {\n apiKey = \"torus-default\";\n}\nfunction getAPIKey() {\n return apiKey;\n}\n\n// #endregion\n\nfunction setLogLevel(level) {\n log.setLevel(level);\n}\nasync function fetchAndTrace(url, init) {\n let _url = null;\n try {\n _url = new URL(url);\n } catch (error) {}\n if (sentry && _url && (tracingOrigins.includes(_url.origin) || tracingPaths.includes(_url.pathname))) {\n const transaction = sentry.startTransaction({\n name: url\n });\n const span = transaction.startChild({\n op: \"http\"\n }); // This function returns a Span\n\n const response = await fetch(url, init);\n span.finish(); // Remember that only finished spans will be sent with the transaction\n\n transaction.finish(); // Finishing the transaction will send it to Sentry\n\n return response;\n }\n return fetch(url, init);\n}\nfunction getApiKeyHeaders() {\n const headers = {};\n if (apiKey) headers[gatewayAuthHeader] = apiKey;\n if (embedHost) headers[gatewayEmbedHostHeader] = embedHost;\n return headers;\n}\nfunction debugLogResponse(response) {\n log.info(`Response: ${response.status} ${response.statusText}`);\n log.info(`Url: ${response.url}`);\n}\nfunction logTracingHeader(response) {\n log.info(`Request tracing with traceID=${response.headers.get(\"x-web3-correlation-id\")}`);\n}\nconst promiseTimeout = (ms, promise) => {\n const timeout = new Promise((_resolve, reject) => {\n const id = setTimeout(() => {\n clearTimeout(id);\n reject(new Error(`Timed out in ${ms}ms`));\n }, ms);\n });\n return Promise.race([promise, timeout]);\n};\nconst get = async function (url) {\n let options_ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let customOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const defaultOptions = {\n mode: \"cors\",\n headers: {}\n };\n if (customOptions.useAPIKey) {\n defaultOptions.headers = _objectSpread(_objectSpread({}, defaultOptions.headers), getApiKeyHeaders());\n }\n const options = merge(defaultOptions, options_, {\n method: \"GET\"\n });\n const response = await fetchAndTrace(url, options);\n if (response.ok) {\n const responseContentType = response.headers.get(\"content-type\");\n if (responseContentType !== null && responseContentType !== void 0 && responseContentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n }\n debugLogResponse(response);\n throw response;\n};\nconst post = function (url) {\n let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let options_ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let customOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const defaultOptions = {\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\"\n }\n };\n if (customOptions.useAPIKey) {\n defaultOptions.headers = _objectSpread(_objectSpread({}, defaultOptions.headers), getApiKeyHeaders());\n }\n const options = merge(defaultOptions, options_, {\n method: \"POST\"\n });\n\n // deep merge changes the structure of form data and url encoded data ,\n // so we should not deepmerge body data\n if (customOptions.isUrlEncodedData) {\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n options.body = data;\n // If url encoded data, this must not be the content type\n if (options.headers[\"Content-Type\"] === \"application/json; charset=utf-8\") delete options.headers[\"Content-Type\"];\n } else {\n options.body = JSON.stringify(data);\n }\n return promiseTimeout(customOptions.timeout || 60000, fetchAndTrace(url, options).then(response => {\n if (customOptions.logTracingHeader) {\n logTracingHeader(response);\n }\n if (response.ok) {\n const responseContentType = response.headers.get(\"content-type\");\n if (responseContentType !== null && responseContentType !== void 0 && responseContentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n }\n debugLogResponse(response);\n throw response;\n }));\n};\nconst patch = async function (url) {\n let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let options_ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let customOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const defaultOptions = {\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\"\n }\n };\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n if (customOptions.useAPIKey) {\n defaultOptions.headers = _objectSpread(_objectSpread({}, defaultOptions.headers), getApiKeyHeaders());\n }\n const options = merge(defaultOptions, options_, {\n method: \"PATCH\"\n });\n // deep merge changes the structure of form data and url encoded data ,\n // so we should not deepmerge body data\n if (customOptions.isUrlEncodedData) {\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n options.body = data;\n // If url encoded data, this must not be the content type\n if (options.headers[\"Content-Type\"] === \"application/json; charset=utf-8\") delete options.headers[\"Content-Type\"];\n } else {\n options.body = JSON.stringify(data);\n }\n const response = await fetchAndTrace(url, options);\n if (response.ok) {\n const responseContentType = response.headers.get(\"content-type\");\n if (responseContentType !== null && responseContentType !== void 0 && responseContentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n }\n debugLogResponse(response);\n throw response;\n};\nconst put = async function (url) {\n let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let options_ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let customOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const defaultOptions = {\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\"\n }\n };\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n if (customOptions.useAPIKey) {\n defaultOptions.headers = _objectSpread(_objectSpread({}, defaultOptions.headers), getApiKeyHeaders());\n }\n const options = merge(defaultOptions, options_, {\n method: \"PUT\"\n });\n // deep merge changes the structure of form data and url encoded data ,\n // so we should not deepmerge body data\n if (customOptions.isUrlEncodedData) {\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n options.body = data;\n // If url encoded data, this must not be the content type\n if (options.headers[\"Content-Type\"] === \"application/json; charset=utf-8\") delete options.headers[\"Content-Type\"];\n } else {\n options.body = JSON.stringify(data);\n }\n const response = await fetchAndTrace(url, options);\n if (response.ok) {\n const responseContentType = response.headers.get(\"content-type\");\n if (responseContentType !== null && responseContentType !== void 0 && responseContentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n }\n debugLogResponse(response);\n throw response;\n};\nconst remove = async function (url) {\n let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let options_ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let customOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const defaultOptions = {\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\"\n }\n };\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n if (customOptions.useAPIKey) {\n defaultOptions.headers = _objectSpread(_objectSpread({}, defaultOptions.headers), getApiKeyHeaders());\n }\n const options = merge(defaultOptions, options_, {\n method: \"DELETE\"\n });\n if (customOptions.isUrlEncodedData) {\n // for multipart request browser/client will add multipart content type\n // along with multipart boundary , so for multipart request send\n // content-type: undefined or send with multipart boundary if already known\n options.body = data;\n // If url encoded data, this must not be the content type\n if (options.headers[\"Content-Type\"] === \"application/json; charset=utf-8\") delete options.headers[\"Content-Type\"];\n } else {\n options.body = JSON.stringify(data);\n }\n const response = await fetchAndTrace(url, options);\n if (response.ok) {\n const responseContentType = response.headers.get(\"content-type\");\n if (responseContentType !== null && responseContentType !== void 0 && responseContentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n }\n debugLogResponse(response);\n throw response;\n};\nconst generateJsonRPCObject = (method, parameters) => ({\n jsonrpc: \"2.0\",\n method,\n id: 10,\n params: parameters\n});\nconst promiseRace = function (url, options) {\n let timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60000;\n return Promise.race([get(url, options), new Promise((_resolve, reject) => {\n setTimeout(() => {\n reject(new Error(\"timed out\"));\n }, timeout);\n })]);\n};\n\nexport { clearAPIKey, clearEmbedHost, enableSentryTracing, gatewayAuthHeader, gatewayEmbedHostHeader, generateJsonRPCObject, get, getAPIKey, getEmbedHost, patch, post, promiseRace, promiseTimeout, put, remove, setAPIKey, setEmbedHost, setLogLevel };\n//# sourceMappingURL=httpHelpers.esm.js.map\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { SafeEventEmitter } from '@toruslabs/openlogin-jrpc';\nimport { OPENLOGIN_NETWORK } from '@toruslabs/openlogin-utils';\nexport { OPENLOGIN_NETWORK } from '@toruslabs/openlogin-utils';\nimport { CustomError } from 'ts-custom-error';\nimport { post } from '@toruslabs/http-helpers';\nimport { jwtDecode } from 'jwt-decode';\nimport loglevel from 'loglevel';\n\nconst CHAIN_NAMESPACES = {\n EIP155: \"eip155\",\n SOLANA: \"solana\",\n OTHER: \"other\"\n};\n// eip155 for all evm chains\n\nconst ADAPTER_NAMESPACES = {\n EIP155: \"eip155\",\n SOLANA: \"solana\",\n XRPL: \"xrpl\",\n MULTICHAIN: \"multichain\"\n};\n// eip155 for all evm chains\n\nconst getDefaultNetworkId = chainNamespace => {\n if (chainNamespace === CHAIN_NAMESPACES.EIP155) {\n return 1;\n } else if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n return 1;\n }\n throw new Error(`Chain namespace ${chainNamespace} is not supported`);\n};\nconst getEvmChainConfig = chainId => {\n const chainNamespace = CHAIN_NAMESPACES.EIP155;\n if (chainId === 1) {\n return {\n chainNamespace,\n chainId: \"0x1\",\n rpcTarget: `https://rpc.ankr.com/eth`,\n displayName: \"Ethereum Mainnet\",\n blockExplorer: \"https://etherscan.io/\",\n ticker: \"ETH\",\n tickerName: \"Ethereum\",\n decimals: 18\n };\n }\n if (chainId === 5) {\n return {\n chainNamespace,\n chainId: \"0x5\",\n rpcTarget: `https://rpc.ankr.com/eth_goerli`,\n displayName: \"Goerli Testnet\",\n blockExplorer: \"https://goerli.etherscan.io/\",\n ticker: \"ETH\",\n tickerName: \"Ethereum\",\n decimals: 18\n };\n }\n if (chainId === 11155111) {\n return {\n chainNamespace,\n chainId: \"0xaa36a7\",\n rpcTarget: `https://rpc.ankr.com/eth_sepolia`,\n displayName: \"Sepolia Testnet\",\n blockExplorer: \"https://sepolia.etherscan.io/\",\n ticker: \"ETH\",\n tickerName: \"Ethereum\",\n decimals: 18\n };\n }\n if (chainId === 137) {\n return {\n chainNamespace,\n chainId: \"0x89\",\n rpcTarget: \"https://rpc.ankr.com/polygon\",\n displayName: \"Polygon Mainnet\",\n blockExplorer: \"https://polygonscan.com\",\n ticker: \"MATIC\",\n tickerName: \"Polygon\"\n };\n }\n if (chainId === 80001) {\n return {\n chainNamespace,\n chainId: \"0x13881\",\n rpcTarget: \"https://rpc.ankr.com/polygon_mumbai\",\n displayName: \"Polygon Mumbai Testnet\",\n blockExplorer: \"https://mumbai.polygonscan.com/\",\n ticker: \"MATIC\",\n tickerName: \"Polygon\",\n decimals: 18\n };\n }\n if (chainId === 56) {\n return {\n chainNamespace,\n chainId: \"0x38\",\n rpcTarget: \"https://rpc.ankr.com/bsc\",\n displayName: \"Binance SmartChain Mainnet\",\n blockExplorer: \"https://bscscan.com\",\n ticker: \"BNB\",\n tickerName: \"Binance SmartChain\",\n decimals: 18\n };\n }\n if (chainId === 97) {\n return {\n chainNamespace,\n chainId: \"0x61\",\n rpcTarget: \"https://rpc.ankr.com/bsc_testnet_chapel\",\n displayName: \"Binance SmartChain Testnet\",\n blockExplorer: \"https://testnet.bscscan.com\",\n ticker: \"BNB\",\n tickerName: \"Binance SmartChain\",\n decimals: 18\n };\n }\n if (chainId === 25) {\n return {\n chainNamespace,\n chainId: \"0x19\",\n rpcTarget: \"https://rpc.cronos.org\",\n displayName: \"Cronos Mainnet\",\n blockExplorer: \"https://cronoscan.com/\",\n ticker: \"CRO\",\n tickerName: \"Cronos\"\n };\n }\n if (chainId === 338) {\n return {\n chainNamespace,\n chainId: \"0x152\",\n rpcTarget: \"https://rpc-t3.cronos.org/\",\n displayName: \"Cronos Testnet\",\n blockExplorer: \"https://cronoscan.com/\",\n ticker: \"CRO\",\n tickerName: \"Cronos\",\n decimals: 18\n };\n }\n if (chainId === 8217) {\n return {\n chainNamespace,\n chainId: \"0x2019\",\n rpcTarget: \"https://public-node-api.klaytnapi.com/v1/cypress\",\n displayName: \"Klaytn Mainnet\",\n blockExplorer: \"https://scope.klaytn.com\",\n ticker: \"KLAY\",\n tickerName: \"Klaytn\",\n decimals: 18\n };\n }\n return null;\n};\nconst getSolanaChainConfig = chainId => {\n const chainNamespace = CHAIN_NAMESPACES.SOLANA;\n if (chainId === 1) {\n return {\n chainNamespace,\n chainId: \"0x1\",\n rpcTarget: \"https://rpc.ankr.com/solana\",\n displayName: \"Solana Mainnet\",\n blockExplorer: \"https://explorer.solana.com\",\n ticker: \"SOL\",\n tickerName: \"Solana\",\n decimals: 9\n };\n } else if (chainId === 2) {\n return {\n chainNamespace,\n chainId: \"0x2\",\n rpcTarget: \"https://api.testnet.solana.com\",\n displayName: \"Solana Testnet\",\n blockExplorer: \"https://explorer.solana.com?cluster=testnet\",\n ticker: \"SOL\",\n tickerName: \"Solana\",\n decimals: 9\n };\n } else if (chainId === 3) {\n return {\n chainNamespace,\n chainId: \"0x3\",\n rpcTarget: \"https://api.devnet.solana.com\",\n displayName: \"Solana Devnet\",\n blockExplorer: \"https://explorer.solana.com?cluster=devnet\",\n ticker: \"SOL\",\n tickerName: \"Solana\",\n decimals: 9\n };\n }\n return null;\n};\nconst getChainConfig = (chainNamespace, chainId) => {\n if (chainNamespace === CHAIN_NAMESPACES.OTHER) return null;\n const finalChainId = chainId ? typeof chainId === \"number\" ? chainId : parseInt(chainId, 16) : getDefaultNetworkId(chainNamespace);\n if (chainNamespace === CHAIN_NAMESPACES.EIP155) {\n return getEvmChainConfig(finalChainId);\n } else if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n return getSolanaChainConfig(finalChainId);\n }\n return null;\n};\n\n// @flow\n\nclass Web3AuthError extends CustomError {\n constructor(code, message) {\n // takes care of stack and proto\n super(message);\n _defineProperty(this, \"code\", void 0);\n _defineProperty(this, \"message\", void 0);\n this.code = code;\n this.message = message || \"\";\n // Set name explicitly as minification can mangle class names\n Object.defineProperty(this, \"name\", {\n value: \"Web3AuthError\"\n });\n }\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n message: this.message\n };\n }\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\nclass WalletInitializationError extends Web3AuthError {\n constructor(code, message) {\n // takes care of stack and proto\n super(code, message);\n\n // Set name explicitly as minification can mangle class names\n Object.defineProperty(this, \"name\", {\n value: \"WalletInitializationError\"\n });\n }\n static fromCode(code) {\n let extraMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n return new WalletInitializationError(code, `${WalletInitializationError.messages[code]}, ${extraMessage}`);\n }\n\n // Custom methods\n static notFound() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5001, extraMessage);\n }\n static notInstalled() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5002, extraMessage);\n }\n static notReady() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5003, extraMessage);\n }\n static windowBlocked() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5004, extraMessage);\n }\n static windowClosed() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5005, extraMessage);\n }\n static incompatibleChainNameSpace() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5006, extraMessage);\n }\n static duplicateAdapterError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5007, extraMessage);\n }\n static invalidProviderConfigError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5008, extraMessage);\n }\n static providerNotReadyError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5009, extraMessage);\n }\n static rpcConnectionError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5010, extraMessage);\n }\n static invalidParams() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5011, extraMessage);\n }\n static invalidNetwork() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletInitializationError.fromCode(5013, extraMessage);\n }\n}\n\n/**\n * wallet login errors\n */\n_defineProperty(WalletInitializationError, \"messages\", {\n 5000: \"Custom\",\n 5001: \"Wallet is not found\",\n 5002: \"Wallet is not installed\",\n 5003: \"Wallet is not ready yet\",\n 5004: \"Wallet window is blocked\",\n 5005: \"Wallet window has been closed by the user\",\n 5006: \"Incompatible chain namespace provided\",\n 5007: \"Adapter has already been included\",\n 5008: \"Invalid provider Config\",\n 5009: \"Provider is not ready yet\",\n 5010: \"Failed to connect with rpc url\",\n 5011: \"Invalid params passed in\",\n 5013: \"Invalid network provided\"\n});\nclass WalletLoginError extends Web3AuthError {\n constructor(code, message) {\n // takes care of stack and proto\n super(code, message);\n\n // Set name explicitly as minification can mangle class names\n Object.defineProperty(this, \"name\", {\n value: \"WalletLoginError\"\n });\n }\n static fromCode(code) {\n let extraMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n return new WalletLoginError(code, `${WalletLoginError.messages[code]}. ${extraMessage}`);\n }\n static connectionError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5111, extraMessage);\n }\n static disconnectionError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5112, extraMessage);\n }\n static notConnectedError() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5113, extraMessage);\n }\n static popupClosed() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5114, extraMessage);\n }\n static mfaEnabled() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5115, extraMessage);\n }\n static chainConfigNotAdded() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5116, extraMessage);\n }\n static unsupportedOperation() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5117, extraMessage);\n }\n static coreKitKeyNotFound() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5118, extraMessage);\n }\n static userNotLoggedIn() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletLoginError.fromCode(5119, extraMessage);\n }\n}\n_defineProperty(WalletLoginError, \"messages\", {\n 5000: \"Custom\",\n 5111: \"Failed to connect with wallet\",\n 5112: \"Failed to disconnect from wallet\",\n 5113: \"Wallet is not connected\",\n 5114: \"Wallet popup has been closed by the user\",\n 5115: \"User has already enabled mfa, please use the @web3auth/web3auth-web sdk for login with mfa\",\n 5116: \"Chain config has not been added. Please add the chain config before calling switchChain\",\n 5117: \"Unsupported operation\",\n 5118: \"useCoreKitKey flag is enabled but coreKitKey is not available\",\n 5119: \"User not logged in.\"\n});\nclass WalletOperationsError extends Web3AuthError {\n constructor(code, message) {\n // takes care of stack and proto\n super(code, message);\n\n // Set name explicitly as minification can mangle class names\n Object.defineProperty(this, \"name\", {\n value: \"WalletOperationsError\"\n });\n }\n static fromCode(code) {\n let extraMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n return new WalletOperationsError(code, `${WalletOperationsError.messages[code]}, ${extraMessage}`);\n }\n\n // Custom methods\n static chainIDNotAllowed() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletOperationsError.fromCode(5201, extraMessage);\n }\n static operationNotAllowed() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletOperationsError.fromCode(5202, extraMessage);\n }\n static chainNamespaceNotAllowed() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletOperationsError.fromCode(5203, extraMessage);\n }\n}\n_defineProperty(WalletOperationsError, \"messages\", {\n 5000: \"Custom\",\n 5201: \"Provided chainId is not allowed\",\n 5202: \"This operation is not allowed\"\n});\nclass WalletProviderError extends Web3AuthError {\n constructor(code, message) {\n // takes care of stack and proto\n super(code, message);\n\n // Set name explicitly as minification can mangle class names\n Object.defineProperty(this, \"name\", {\n value: \"WalletProviderError\"\n });\n }\n static fromCode(code) {\n let extraMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n return new WalletOperationsError(code, `${WalletProviderError.messages[code]}, ${extraMessage}`);\n }\n\n // Custom methods\n static invalidRequestArgs() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletOperationsError.fromCode(5301, extraMessage);\n }\n static invalidRequestMethod() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletOperationsError.fromCode(5302, extraMessage);\n }\n static invalidRequestParams() {\n let extraMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return WalletOperationsError.fromCode(5303, extraMessage);\n }\n}\n_defineProperty(WalletProviderError, \"messages\", {\n 5000: \"Custom\",\n 5301: \"Expected a single, non-array, object argument.\",\n 5302: \"'args.method' must be a non-empty string.\",\n 5303: \"'args.params' must be an object or array if provided.\"\n});\n\nconst MULTI_CHAIN_ADAPTERS = {\n OPENLOGIN: \"openlogin\",\n WALLET_CONNECT_V2: \"wallet-connect-v2\"\n};\nconst SOLANA_ADAPTERS = _objectSpread({\n TORUS_SOLANA: \"torus-solana\",\n PHANTOM: \"phantom\",\n SOLFLARE: \"solflare\",\n SLOPE: \"slope\"\n}, MULTI_CHAIN_ADAPTERS);\nconst EVM_ADAPTERS = _objectSpread({\n TORUS_EVM: \"torus-evm\",\n METAMASK: \"metamask\",\n COINBASE: \"coinbase\"\n}, MULTI_CHAIN_ADAPTERS);\nconst WALLET_ADAPTERS = _objectSpread(_objectSpread({}, EVM_ADAPTERS), SOLANA_ADAPTERS);\nconst ADAPTER_NAMES = {\n [MULTI_CHAIN_ADAPTERS.OPENLOGIN]: \"OpenLogin\",\n [MULTI_CHAIN_ADAPTERS.WALLET_CONNECT_V2]: \"Wallet Connect v2\",\n [SOLANA_ADAPTERS.TORUS_SOLANA]: \"Torus\",\n [SOLANA_ADAPTERS.PHANTOM]: \"Phantom\",\n [SOLANA_ADAPTERS.SOLFLARE]: \"Solflare\",\n [SOLANA_ADAPTERS.SLOPE]: \"Slope\",\n [EVM_ADAPTERS.TORUS_EVM]: \"Torus\",\n [EVM_ADAPTERS.METAMASK]: \"Metamask\",\n [EVM_ADAPTERS.COINBASE]: \"Coinbase\"\n};\n\nconst WEB3AUTH_NETWORK = OPENLOGIN_NETWORK;\nconst ADAPTER_CATEGORY = {\n EXTERNAL: \"external\",\n IN_APP: \"in_app\"\n};\nconst ADAPTER_STATUS = {\n NOT_READY: \"not_ready\",\n READY: \"ready\",\n CONNECTING: \"connecting\",\n CONNECTED: \"connected\",\n DISCONNECTED: \"disconnected\",\n ERRORED: \"errored\"\n};\nconst ADAPTER_EVENTS = _objectSpread(_objectSpread({}, ADAPTER_STATUS), {}, {\n ADAPTER_DATA_UPDATED: \"adapter_data_updated\",\n CACHE_CLEAR: \"cache_clear\"\n});\nclass BaseAdapter extends SafeEventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n super();\n _defineProperty(this, \"adapterData\", {});\n _defineProperty(this, \"sessionTime\", 86400);\n _defineProperty(this, \"clientId\", void 0);\n _defineProperty(this, \"web3AuthNetwork\", OPENLOGIN_NETWORK.MAINNET);\n _defineProperty(this, \"rehydrated\", false);\n // should be added in constructor or from setAdapterSettings function\n // before calling init function.\n _defineProperty(this, \"chainConfig\", null);\n _defineProperty(this, \"knownChainConfigs\", {});\n _defineProperty(this, \"adapterNamespace\", void 0);\n _defineProperty(this, \"currentChainNamespace\", void 0);\n _defineProperty(this, \"type\", void 0);\n _defineProperty(this, \"name\", void 0);\n _defineProperty(this, \"status\", void 0);\n this.setAdapterSettings(options);\n }\n get chainConfigProxy() {\n return this.chainConfig ? _objectSpread({}, this.chainConfig) : null;\n }\n get connnected() {\n return this.status === ADAPTER_STATUS.CONNECTED;\n }\n setAdapterSettings(options) {\n if (this.status === ADAPTER_STATUS.READY) return;\n if (options !== null && options !== void 0 && options.sessionTime) {\n this.sessionTime = options.sessionTime;\n }\n if (options !== null && options !== void 0 && options.clientId) {\n this.clientId = options.clientId;\n }\n if (options !== null && options !== void 0 && options.web3AuthNetwork) {\n this.web3AuthNetwork = options.web3AuthNetwork;\n }\n const customChainConfig = options.chainConfig;\n if (customChainConfig) {\n if (!customChainConfig.chainNamespace) throw WalletInitializationError.notReady(\"ChainNamespace is required while setting chainConfig\");\n this.currentChainNamespace = customChainConfig.chainNamespace;\n // chainId is optional in this function.\n // we go with mainnet chainId by default.\n const defaultChainConfig = getChainConfig(customChainConfig.chainNamespace, customChainConfig.chainId);\n // NOTE: It is being forced casted to CustomChainConfig to handle OTHER Chainnamespace\n // where chainConfig is not required.\n const finalChainConfig = _objectSpread(_objectSpread({}, defaultChainConfig || {}), customChainConfig);\n this.chainConfig = finalChainConfig;\n this.addChainConfig(finalChainConfig);\n }\n }\n checkConnectionRequirements() {\n // we reconnect without killing existing wallet connect session on calling connect again.\n if (this.name === WALLET_ADAPTERS.WALLET_CONNECT_V2 && this.status === ADAPTER_STATUS.CONNECTING) return;else if (this.status === ADAPTER_STATUS.CONNECTING) throw WalletInitializationError.notReady(\"Already connecting\");\n if (this.status === ADAPTER_STATUS.CONNECTED) throw WalletLoginError.connectionError(\"Already connected\");\n if (this.status !== ADAPTER_STATUS.READY) throw WalletLoginError.connectionError(\"Wallet adapter is not ready yet, Please wait for init function to resolve before calling connect/connectTo function\");\n }\n checkInitializationRequirements() {\n if (!this.clientId) throw WalletInitializationError.invalidParams(\"Please initialize Web3Auth with a valid clientId in constructor\");\n if (!this.chainConfig) throw WalletInitializationError.invalidParams(\"rpcTarget is required in chainConfig\");\n if (!this.chainConfig.rpcTarget && this.chainConfig.chainNamespace !== CHAIN_NAMESPACES.OTHER) {\n throw WalletInitializationError.invalidParams(\"rpcTarget is required in chainConfig\");\n }\n if (!this.chainConfig.chainId && this.chainConfig.chainNamespace !== CHAIN_NAMESPACES.OTHER) {\n throw WalletInitializationError.invalidParams(\"chainID is required in chainConfig\");\n }\n if (this.status === ADAPTER_STATUS.NOT_READY) return;\n if (this.status === ADAPTER_STATUS.CONNECTED) throw WalletInitializationError.notReady(\"Already connected\");\n if (this.status === ADAPTER_STATUS.READY) throw WalletInitializationError.notReady(\"Adapter is already initialized\");\n }\n checkDisconnectionRequirements() {\n if (this.status !== ADAPTER_STATUS.CONNECTED) throw WalletLoginError.disconnectionError(\"Not connected with wallet\");\n }\n checkAddChainRequirements(chainConfig) {\n let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!init && !this.provider) throw WalletLoginError.notConnectedError(\"Not connected with wallet.\");\n if (this.currentChainNamespace !== chainConfig.chainNamespace) {\n throw WalletOperationsError.chainNamespaceNotAllowed(\"This adapter doesn't support this chainNamespace\");\n }\n }\n checkSwitchChainRequirements(_ref) {\n let {\n chainId\n } = _ref;\n let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!init && !this.provider) throw WalletLoginError.notConnectedError(\"Not connected with wallet.\");\n if (!this.knownChainConfigs[chainId]) throw WalletLoginError.chainConfigNotAdded(\"Invalid chainId\");\n }\n updateAdapterData(data) {\n this.adapterData = data;\n this.emit(ADAPTER_EVENTS.ADAPTER_DATA_UPDATED, {\n adapterName: this.name,\n data\n });\n }\n addChainConfig(chainConfig) {\n const currentConfig = this.knownChainConfigs[chainConfig.chainId];\n this.knownChainConfigs[chainConfig.chainId] = _objectSpread(_objectSpread({}, currentConfig || {}), chainConfig);\n }\n getChainConfig(chainId) {\n return this.knownChainConfigs[chainId] || null;\n }\n}\nclass BaseNetworkSwitch {}\n\nconst authServer = \"https://authjs.web3auth.io\";\n\nvar log = loglevel.getLogger(\"web3auth-logger\");\n\nfunction storageAvailable(type) {\n let storageExists = false;\n let storageLength = 0;\n let storage;\n try {\n storage = window[type];\n storageExists = true;\n storageLength = storage.length;\n const x = \"__storage_test__\";\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (error) {\n const _error = error;\n return !!(_error && (\n // everything except Firefox\n _error.code === 22 ||\n // Firefox\n _error.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n _error.name === \"QuotaExceededError\" ||\n // Firefox\n _error.name === \"NS_ERROR_DOM_QUOTA_REACHED\") &&\n // acknowledge QuotaExceededError only if there's something already stored\n storageExists && storageLength !== 0);\n }\n}\nconst isHexStrict = hex => {\n return (typeof hex === \"string\" || typeof hex === \"number\") && /^(-)?0x[0-9a-f]*$/i.test(hex);\n};\n\nconst checkIfTokenIsExpired = token => {\n const decoded = jwtDecode(token);\n if (!decoded.exp) {\n return true;\n }\n if (decoded.exp < Math.floor(Date.now() / 1000)) {\n return true;\n }\n return false;\n};\nconst signChallenge = async (payload, chainNamespace) => {\n const t = chainNamespace === \"solana\" ? \"sip99\" : \"eip191\";\n const header = {\n t\n };\n const network = chainNamespace === \"solana\" ? \"solana\" : \"ethereum\";\n const data = {\n payload,\n header,\n network\n };\n const res = await post(`${authServer}/siww/get`, data);\n if (!res.success) {\n throw new Error(\"Failed to authenticate user, Please reach out to Web3Auth Support team\");\n }\n return res.challenge;\n};\nconst verifySignedChallenge = async (chainNamespace, signedMessage, challenge, issuer, sessionTime, clientId, web3AuthNetwork) => {\n const t = chainNamespace === \"solana\" ? \"sip99\" : \"eip191\";\n const sigData = {\n signature: {\n s: signedMessage,\n t\n },\n message: challenge,\n issuer,\n audience: typeof window.location !== \"undefined\" ? window.location.hostname : \"com://reactnative\",\n timeout: sessionTime\n };\n const idTokenRes = await post(`${authServer}/siww/verify`, sigData, {\n headers: {\n client_id: clientId,\n wallet_provider: issuer,\n web3auth_network: web3AuthNetwork\n }\n });\n if (!idTokenRes.success) {\n log.error(\"Failed to authenticate user, ,message verification failed\", idTokenRes.error);\n throw new Error(\"Failed to authenticate user, ,message verification failed\");\n }\n return idTokenRes.token;\n};\nconst getSavedToken = (userAddress, issuer) => {\n if (storageAvailable(\"localStorage\")) {\n return localStorage.getItem(`${userAddress.toLowerCase()}_${issuer}`);\n }\n return null;\n};\nconst saveToken = (userAddress, issuer, token) => {\n if (storageAvailable(\"localStorage\")) {\n return localStorage.setItem(`${userAddress.toLowerCase()}_${issuer}`, token);\n }\n return null;\n};\nconst clearToken = (userAddress, issuer) => {\n if (storageAvailable(\"localStorage\")) {\n return localStorage.removeItem(`${userAddress.toLowerCase()}_${issuer}`);\n }\n return null;\n};\n\nconst PROVIDER_EVENTS = {\n INITIALIZED: \"initialized\",\n ERRORED: \"errored\"\n};\n\nexport { ADAPTER_CATEGORY, ADAPTER_EVENTS, ADAPTER_NAMES, ADAPTER_NAMESPACES, ADAPTER_STATUS, BaseAdapter, BaseNetworkSwitch, CHAIN_NAMESPACES, EVM_ADAPTERS, MULTI_CHAIN_ADAPTERS, PROVIDER_EVENTS, SOLANA_ADAPTERS, WALLET_ADAPTERS, WEB3AUTH_NETWORK, WalletInitializationError, WalletLoginError, WalletOperationsError, WalletProviderError, Web3AuthError, authServer, checkIfTokenIsExpired, clearToken, getChainConfig, getEvmChainConfig, getSavedToken, getSolanaChainConfig, isHexStrict, log, saveToken, signChallenge, storageAvailable, verifySignedChallenge };\n//# sourceMappingURL=base.esm.js.map\n","export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a) => a instanceof Uint8Array;\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\nexport function equalBytes(b1, b2) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length)\n return false;\n for (let i = 0; i < b1.length; i++)\n if (b1[i] !== b2[i])\n return false;\n return true;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport const bitSet = (n, pos, value) => {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n};\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport { bitMask, numberToBytesBE, numberToBytesLE, bytesToNumberBE, bytesToNumberLE, ensureBytes, validateObject, } from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nexport function mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nexport function invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n// Tonelli-Shanks algorithm\n// Paper 1: https://eprint.iacr.org/2012/685.pdf (page 12)\n// Paper 2: Square Roots from 1; 24, 51, 10 to Dan Shanks\nexport function tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nexport function FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nexport function validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n// Generic field functions\nexport function FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n// 0 is non-invertible: non-batched version will throw on 0\nexport function FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nexport function FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x) => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a galois field over prime. Non-primes are not supported for now.\n * Do not init in loop: slow. Very fragile: always run a benchmark on change.\n * Major performance gains:\n * a) non-normalized operations like mulN instead of mul\n * b) `Object.freeze`\n * c) Same object shape: never add or remove keys\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Fp ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n });\n return Object.freeze(f);\n}\nexport function FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexport function FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * FIPS 186 B.4.1-compliant \"constant-time\" private key generation utility.\n * Can take (n+8) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 40 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. curveFn.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W) => {\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, precomputesMap, n, transform) {\n // @ts-ignore\n const W = P._WINDOW_SIZE || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = precomputesMap.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\n };\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes } from './utils.js';\nimport { wNAF, validateBasic } from './curve.js';\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\n// ASN.1 DER encoding utilities\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n _parseInt(data) {\n const { Err: E } = DER;\n if (data.length < 2 || data[0] !== 0x02)\n throw new E('Invalid signature integer tag');\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len)\n throw new E('Invalid signature integer: wrong length');\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n if (res[0] & 0b10000000)\n throw new E('Invalid signature integer: negative');\n if (res[0] === 0x00 && !(res[1] & 0b10000000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n if (!(data instanceof Uint8Array))\n throw new Error('ui8a expected');\n let l = data.length;\n if (l < 2 || data[0] != 0x30)\n throw new E('Invalid signature tag');\n if (data[1] !== l - 2)\n throw new E('Invalid signature: incorrect length');\n const { d: r, l: sBytes } = DER._parseInt(data.subarray(2));\n const { d: s, l: rBytesLeft } = DER._parseInt(sBytes);\n if (rBytesLeft.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r, s };\n },\n hexFromSig(sig) {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n const slice = (s) => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n const h = (num) => {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n };\n const s = slice(h(sig.s));\n const r = slice(h(sig.r));\n const shl = s.length / 2;\n const rhl = r.length / 2;\n const sl = h(shl);\n const rl = h(rhl);\n return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`;\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const toBytes = CURVE.toBytes ||\n ((c, point, isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n function assertGE(num) {\n if (!isWithinCurveOrder(num))\n throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (key instanceof Uint8Array)\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, n); // disabled by default, enabled for BLS\n assertGE(num); // num in range [1..N-1]\n return num;\n }\n const pointPrecomputes = new Map();\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n // Zero is valid point too!\n if (this.is0()) {\n if (CURVE.allowInfinityPoint)\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = this.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, (comp) => {\n const toInv = Fp.invertBatch(comp.map((p) => p.pz));\n return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n });\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(n) {\n const I = Point.ZERO;\n if (n === _0n)\n return I;\n assertGE(n); // Will throw on 0\n if (n === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, n);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n assertGE(scalar);\n let n = scalar;\n let point, fake; // Fake point is used to const-time mult\n const { endo } = CURVE;\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n const { px: x, py: y, pz: z } = this;\n const is0 = this.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function isValidFieldElement(num) {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r))\n throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s))\n throw new Error('s must be 0 < s < CURVE.n');\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size (nBitLength+64)\n * as per FIPS 186 B.4.1 with modulo bias being neglible.\n */\n randomPrivateKey: () => {\n const rand = CURVE.randomBytes(Fp.BYTES + 8);\n const num = mod.hashToPrivateScalar(rand, CURVE_ORDER);\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n if (typeof num !== 'bigint')\n throw new Error('bigint expected');\n if (!(_0n <= num && num < ORDER_MASK))\n throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e, Fp.BYTES)); // check for being of size BYTES\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || sg instanceof Uint8Array) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * From draft-irtf-cfrg-hash-to-curve-16\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","import { mod } from './modular.js';\nimport { bytesToNumberBE, concatBytes, utf8ToBytes, validateObject } from './utils.js';\nfunction validateDST(dst) {\n if (dst instanceof Uint8Array)\n return dst;\n if (typeof dst === 'string')\n return utf8ToBytes(dst);\n throw new Error('DST must be Uint8Array or string');\n}\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction isBytes(item) {\n if (!(item instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n}\nfunction isNum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11#section-5.4.1\nexport function expand_message_xmd(msg, DST, lenInBytes, H) {\n isBytes(msg);\n isBytes(DST);\n isNum(lenInBytes);\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-5.3.3\n if (DST.length > 255)\n DST = H(concatBytes(utf8ToBytes('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (ell > 255)\n throw new Error('Invalid xmd length');\n const DST_prime = concatBytes(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H(concatBytes(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H(concatBytes(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H(concatBytes(...args));\n }\n const pseudo_random_bytes = concatBytes(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\nexport function expand_message_xof(msg, DST, lenInBytes, k, H) {\n isBytes(msg);\n isBytes(DST);\n isNum(lenInBytes);\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update(utf8ToBytes('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11#section-5.3\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nexport function hash_to_field(msg, count, options) {\n validateObject(options, {\n DST: 'string',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n isBytes(msg);\n isNum(count);\n const DST = validateDST(_DST);\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = mod(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nexport function isogenyMap(field, map) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nexport function createHasher(Point, mapToCurve, def) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-3\n hashToCurve(msg, options) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options });\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-3\n encodeToCurve(msg, options) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options });\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from './abstract/weierstrass.js';\n// connects noble-curves to noble-hashes\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nimport { bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE } from './abstract/utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { createCurve } from './_shortw_utils.js';\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\nexport const secp256k1 = createCurve({\n a: BigInt(0),\n b: BigInt(7),\n Fp,\n n: secp256k1N,\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true,\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\nconst fe = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1N;\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => numberToBytesBE(n, 32);\nconst modP = (x) => mod(x, secp256k1P);\nconst modN = (x) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n if (!fe(x))\n throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ bytesToNumberBE(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(bytesToNumberBE(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(bytesToNumberBE(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = bytesToNumberBE(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!fe(r))\n return false;\n const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!ge(s))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","import assert from \"@noble/hashes/_assert\";\nimport { hexToBytes as _hexToBytes } from \"@noble/hashes/utils\";\nconst assertBool = assert.bool;\nconst assertBytes = assert.bytes;\nexport { assertBool, assertBytes };\nexport { bytesToHex, bytesToHex as toHex, concatBytes, createView, utf8ToBytes } from \"@noble/hashes/utils\";\n// buf.toString('utf8') -> bytesToUtf8(buf)\nexport function bytesToUtf8(data) {\n if (!(data instanceof Uint8Array)) {\n throw new TypeError(`bytesToUtf8 expected Uint8Array, got ${typeof data}`);\n }\n return new TextDecoder().decode(data);\n}\nexport function hexToBytes(data) {\n const sliced = data.startsWith(\"0x\") ? data.substring(2) : data;\n return _hexToBytes(sliced);\n}\n// buf.equals(buf2) -> equalsBytes(buf, buf2)\nexport function equalsBytes(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n// Internal utils\nexport function wrapHash(hash) {\n return (msg) => {\n assert.bytes(msg);\n return hash(msg);\n };\n}\n// TODO(v3): switch away from node crypto, remove this unnecessary variable.\nexport const crypto = (() => {\n const webCrypto = typeof globalThis === \"object\" && \"crypto\" in globalThis ? globalThis.crypto : undefined;\n const nodeRequire = typeof module !== \"undefined\" &&\n typeof module.require === \"function\" &&\n module.require.bind(module);\n return {\n node: nodeRequire && !webCrypto ? nodeRequire(\"crypto\") : undefined,\n web: webCrypto\n };\n})();\n","/*\nThe MIT License\n\nCopyright (c) 2016 Nick Dodson. nickdodson.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE\n */\nimport { bytesToUnprefixedHex, utf8ToBytes } from './bytes.js';\n/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param str the string input value\n * @return a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nexport function isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(`[isHexPrefixed] input must be type 'string', received type ${typeof str}`);\n }\n return str[0] === '0' && str[1] === 'x';\n}\n/**\n * Removes '0x' from a given `String` if present\n * @param str the string value\n * @returns the string without 0x prefix\n */\nexport const stripHexPrefix = (str) => {\n if (typeof str !== 'string')\n throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);\n return isHexPrefixed(str) ? str.slice(2) : str;\n};\n/**\n * Pads a `String` to have an even length\n * @param value\n * @return output\n */\nexport function padToEven(value) {\n let a = value;\n if (typeof a !== 'string') {\n throw new Error(`[padToEven] value must be type 'string', received ${typeof a}`);\n }\n if (a.length % 2)\n a = `0${a}`;\n return a;\n}\n/**\n * Get the binary size of a string\n * @param str\n * @returns the number of bytes contained within the string\n */\nexport function getBinarySize(str) {\n if (typeof str !== 'string') {\n throw new Error(`[getBinarySize] method requires input type 'string', received ${typeof str}`);\n }\n return utf8ToBytes(str).byteLength;\n}\n/**\n * Returns TRUE if the first specified array contains all elements\n * from the second one. FALSE otherwise.\n *\n * @param superset\n * @param subset\n *\n */\nexport function arrayContainsArray(superset, subset, some) {\n if (Array.isArray(superset) !== true) {\n throw new Error(`[arrayContainsArray] method requires input 'superset' to be an array, got type '${typeof superset}'`);\n }\n if (Array.isArray(subset) !== true) {\n throw new Error(`[arrayContainsArray] method requires input 'subset' to be an array, got type '${typeof subset}'`);\n }\n return subset[some === true ? 'some' : 'every']((value) => superset.indexOf(value) >= 0);\n}\n/**\n * Should be called to get ascii from its hex representation\n *\n * @param string in hex\n * @returns ascii string representation of hex value\n */\nexport function toAscii(hex) {\n let str = '';\n let i = 0;\n const l = hex.length;\n if (hex.substring(0, 2) === '0x')\n i = 2;\n for (; i < l; i += 2) {\n const code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n return str;\n}\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string.\n * Strips leading and trailing 0's.\n *\n * @param string\n * @param optional padding\n * @returns hex representation of input string\n */\nexport function fromUtf8(stringValue) {\n const str = utf8ToBytes(stringValue);\n return `0x${padToEven(bytesToUnprefixedHex(str)).replace(/^0+|0+$/g, '')}`;\n}\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n *\n * @param string\n * @param optional padding\n * @returns hex representation of input string\n */\nexport function fromAscii(stringValue) {\n let hex = '';\n for (let i = 0; i < stringValue.length; i++) {\n const code = stringValue.charCodeAt(i);\n const n = code.toString(16);\n hex += n.length < 2 ? `0${n}` : n;\n }\n return `0x${hex}`;\n}\n/**\n * Returns the keys from an array of objects.\n * @example\n * ```js\n * getKeys([{a: '1', b: '2'}, {a: '3', b: '4'}], 'a') => ['1', '3']\n *````\n * @param params\n * @param key\n * @param allowEmpty\n * @returns output just a simple array of output keys\n */\nexport function getKeys(params, key, allowEmpty) {\n if (!Array.isArray(params)) {\n throw new Error(`[getKeys] method expects input 'params' to be an array, got ${typeof params}`);\n }\n if (typeof key !== 'string') {\n throw new Error(`[getKeys] method expects input 'key' to be type 'string', got ${typeof params}`);\n }\n const result = [];\n for (let i = 0; i < params.length; i++) {\n let value = params[i][key];\n if (allowEmpty === true && !value) {\n value = '';\n }\n else if (typeof value !== 'string') {\n throw new Error(`invalid abi - expected type 'string', received ${typeof value}`);\n }\n result.push(value);\n }\n return result;\n}\n/**\n * Is the string a hex string.\n *\n * @param value\n * @param length\n * @returns output the string is a hex string\n */\nexport function isHexString(value, length) {\n if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/))\n return false;\n if (typeof length !== 'undefined' && length > 0 && value.length !== 2 + 2 * length)\n return false;\n return true;\n}\n//# sourceMappingURL=internal.js.map","import { isHexString } from './internal.js';\n/**\n * Throws if a string is not hex prefixed\n * @param {string} input string to check hex prefix of\n */\nexport const assertIsHexString = function (input) {\n if (!isHexString(input)) {\n const msg = `This method only supports 0x-prefixed hex strings but input was: ${input}`;\n throw new Error(msg);\n }\n};\n/**\n * Throws if input is not a buffer\n * @param {Buffer} input value to check\n */\nexport const assertIsBytes = function (input) {\n if (!(input instanceof Uint8Array)) {\n const msg = `This method only supports Uint8Array but input was: ${input}`;\n throw new Error(msg);\n }\n};\n/**\n * Throws if input is not an array\n * @param {number[]} input value to check\n */\nexport const assertIsArray = function (input) {\n if (!Array.isArray(input)) {\n const msg = `This method only supports number arrays but input was: ${input}`;\n throw new Error(msg);\n }\n};\n/**\n * Throws if input is not a string\n * @param {string} input value to check\n */\nexport const assertIsString = function (input) {\n if (typeof input !== 'string') {\n const msg = `This method only supports strings but input was: ${input}`;\n throw new Error(msg);\n }\n};\n//# sourceMappingURL=helpers.js.map","import { getRandomBytesSync } from 'ethereum-cryptography/random.js';\n// eslint-disable-next-line no-restricted-imports\nimport { bytesToHex as _bytesToUnprefixedHex, hexToBytes as _unprefixedHexToBytes, } from 'ethereum-cryptography/utils.js';\nimport { assertIsArray, assertIsBytes, assertIsHexString } from './helpers.js';\nimport { isHexPrefixed, isHexString, padToEven, stripHexPrefix } from './internal.js';\nconst BIGINT_0 = BigInt(0);\n/**\n * @deprecated\n */\nexport const bytesToUnprefixedHex = _bytesToUnprefixedHex;\n/**\n * @deprecated\n */\nexport const unprefixedHexToBytes = (inp) => {\n if (inp.slice(0, 2) === '0x') {\n throw new Error('hex string is prefixed with 0x, should be unprefixed');\n }\n else {\n return _unprefixedHexToBytes(padToEven(inp));\n }\n};\n/**************** Borrowed from @chainsafe/ssz */\n// Caching this info costs about ~1000 bytes and speeds up toHexString() by x6\nconst hexByByte = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nexport const bytesToHex = (bytes) => {\n let hex = '0x';\n if (bytes === undefined || bytes.length === 0)\n return hex;\n for (const byte of bytes) {\n hex += hexByByte[byte];\n }\n return hex;\n};\n// BigInt cache for the numbers 0 - 256*256-1 (two-byte bytes)\nconst BIGINT_CACHE = [];\nfor (let i = 0; i <= 256 * 256 - 1; i++) {\n BIGINT_CACHE[i] = BigInt(i);\n}\n/**\n * Converts a {@link Uint8Array} to a {@link bigint}\n * @param {Uint8Array} bytes the bytes to convert\n * @returns {bigint}\n */\nexport const bytesToBigInt = (bytes) => {\n const hex = bytesToHex(bytes);\n if (hex === '0x') {\n return BIGINT_0;\n }\n if (hex.length === 4) {\n // If the byte length is 1 (this is faster than checking `bytes.length === 1`)\n return BIGINT_CACHE[bytes[0]];\n }\n if (hex.length === 6) {\n return BIGINT_CACHE[bytes[0] * 256 + bytes[1]];\n }\n return BigInt(hex);\n};\n/**\n * Converts a {@link Uint8Array} to a {@link number}.\n * @param {Uint8Array} bytes the bytes to convert\n * @return {number}\n * @throws If the input number exceeds 53 bits.\n */\nexport const bytesToInt = (bytes) => {\n const res = Number(bytesToBigInt(bytes));\n if (!Number.isSafeInteger(res))\n throw new Error('Number exceeds 53 bits');\n return res;\n};\nexport const hexToBytes = (hex) => {\n if (typeof hex !== 'string') {\n throw new Error(`hex argument type ${typeof hex} must be of type string`);\n }\n if (!hex.startsWith('0x')) {\n throw new Error(`prefixed hex input should start with 0x, got ${hex.substring(0, 2)}`);\n }\n hex = hex.slice(2);\n if (hex.length % 2 !== 0) {\n hex = padToEven(hex);\n }\n const byteLen = hex.length / 2;\n const bytes = new Uint8Array(byteLen);\n for (let i = 0; i < byteLen; i++) {\n const byte = parseInt(hex.slice(i * 2, (i + 1) * 2), 16);\n bytes[i] = byte;\n }\n return bytes;\n};\n/******************************************/\n/**\n * Converts a {@link number} into a {@link PrefixedHexString}\n * @param {number} i\n * @return {PrefixedHexString}\n */\nexport const intToHex = (i) => {\n if (!Number.isSafeInteger(i) || i < 0) {\n throw new Error(`Received an invalid integer type: ${i}`);\n }\n return `0x${i.toString(16)}`;\n};\n/**\n * Converts an {@link number} to a {@link Uint8Array}\n * @param {Number} i\n * @return {Uint8Array}\n */\nexport const intToBytes = (i) => {\n const hex = intToHex(i);\n return hexToBytes(hex);\n};\n/**\n * Converts a {@link bigint} to a {@link Uint8Array}\n * * @param {bigint} num the bigint to convert\n * @returns {Uint8Array}\n */\nexport const bigIntToBytes = (num) => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return toBytes('0x' + padToEven(num.toString(16)));\n};\n/**\n * Returns a Uint8Array filled with 0s.\n * @param {number} bytes the number of bytes of the Uint8Array\n * @return {Uint8Array}\n */\nexport const zeros = (bytes) => {\n return new Uint8Array(bytes);\n};\n/**\n * Pads a `Uint8Array` with zeros till it has `length` bytes.\n * Truncates the beginning or end of input if its length exceeds `length`.\n * @param {Uint8Array} msg the value to pad\n * @param {number} length the number of bytes the output should be\n * @param {boolean} right whether to start padding form the left or right\n * @return {Uint8Array}\n */\nconst setLength = (msg, length, right) => {\n if (right) {\n if (msg.length < length) {\n return new Uint8Array([...msg, ...zeros(length - msg.length)]);\n }\n return msg.subarray(0, length);\n }\n else {\n if (msg.length < length) {\n return new Uint8Array([...zeros(length - msg.length), ...msg]);\n }\n return msg.subarray(-length);\n }\n};\n/**\n * Left Pads a `Uint8Array` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param {Uint8Array} msg the value to pad\n * @param {number} length the number of bytes the output should be\n * @return {Uint8Array}\n */\nexport const setLengthLeft = (msg, length) => {\n assertIsBytes(msg);\n return setLength(msg, length, false);\n};\n/**\n * Right Pads a `Uint8Array` with trailing zeros till it has `length` bytes.\n * it truncates the end if it exceeds.\n * @param {Uint8Array} msg the value to pad\n * @param {number} length the number of bytes the output should be\n * @return {Uint8Array}\n */\nexport const setLengthRight = (msg, length) => {\n assertIsBytes(msg);\n return setLength(msg, length, true);\n};\n/**\n * Trims leading zeros from a `Uint8Array`, `number[]` or PrefixedHexString`.\n * @param {Uint8Array|number[]|PrefixedHexString} a\n * @return {Uint8Array|number[]|PrefixedHexString}\n */\nconst stripZeros = (a) => {\n let first = a[0];\n while (a.length > 0 && first.toString() === '0') {\n a = a.slice(1);\n first = a[0];\n }\n return a;\n};\n/**\n * Trims leading zeros from a `Uint8Array`.\n * @param {Uint8Array} a\n * @return {Uint8Array}\n */\nexport const unpadBytes = (a) => {\n assertIsBytes(a);\n return stripZeros(a);\n};\n/**\n * Trims leading zeros from an `Array` (of numbers).\n * @param {number[]} a\n * @return {number[]}\n */\nexport const unpadArray = (a) => {\n assertIsArray(a);\n return stripZeros(a);\n};\n/**\n * Trims leading zeros from a `PrefixedHexString`.\n * @param {PrefixedHexString} a\n * @return {PrefixedHexString}\n */\nexport const unpadHex = (a) => {\n assertIsHexString(a);\n a = stripHexPrefix(a);\n return '0x' + stripZeros(a);\n};\n/**\n * Attempts to turn a value into a `Uint8Array`.\n * Inputs supported: `Buffer`, `Uint8Array`, `String` (hex-prefixed), `Number`, null/undefined, `BigInt` and other objects\n * with a `toArray()` or `toBytes()` method.\n * @param {ToBytesInputTypes} v the value\n * @return {Uint8Array}\n */\nexport const toBytes = (v) => {\n if (v === null || v === undefined) {\n return new Uint8Array();\n }\n if (Array.isArray(v) || v instanceof Uint8Array) {\n return Uint8Array.from(v);\n }\n if (typeof v === 'string') {\n if (!isHexString(v)) {\n throw new Error(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${v}`);\n }\n return hexToBytes(v);\n }\n if (typeof v === 'number') {\n return intToBytes(v);\n }\n if (typeof v === 'bigint') {\n if (v < BIGINT_0) {\n throw new Error(`Cannot convert negative bigint to Uint8Array. Given: ${v}`);\n }\n let n = v.toString(16);\n if (n.length % 2)\n n = '0' + n;\n return unprefixedHexToBytes(n);\n }\n if (v.toBytes !== undefined) {\n // converts a `TransformableToBytes` object to a Uint8Array\n return v.toBytes();\n }\n throw new Error('invalid type');\n};\n/**\n * Interprets a `Uint8Array` as a signed integer and returns a `BigInt`. Assumes 256-bit numbers.\n * @param {Uint8Array} num Signed integer value\n * @returns {bigint}\n */\nexport const fromSigned = (num) => {\n return BigInt.asIntN(256, bytesToBigInt(num));\n};\n/**\n * Converts a `BigInt` to an unsigned integer and returns it as a `Uint8Array`. Assumes 256-bit numbers.\n * @param {bigint} num\n * @returns {Uint8Array}\n */\nexport const toUnsigned = (num) => {\n return bigIntToBytes(BigInt.asUintN(256, num));\n};\n/**\n * Adds \"0x\" to a given `string` if it does not already start with \"0x\".\n * @param {string} str\n * @return {PrefixedHexString}\n */\nexport const addHexPrefix = (str) => {\n if (typeof str !== 'string') {\n return str;\n }\n return isHexPrefixed(str) ? str : '0x' + str;\n};\n/**\n * Shortens a string or Uint8Array's hex string representation to maxLength (default 50).\n *\n * Examples:\n *\n * Input: '657468657265756d000000000000000000000000000000000000000000000000'\n * Output: '657468657265756d0000000000000000000000000000000000…'\n * @param {Uint8Array | string} bytes\n * @param {number} maxLength\n * @return {string}\n */\nexport const short = (bytes, maxLength = 50) => {\n const byteStr = bytes instanceof Uint8Array ? bytesToHex(bytes) : bytes;\n const len = byteStr.slice(0, 2) === '0x' ? maxLength + 2 : maxLength;\n if (byteStr.length <= len) {\n return byteStr;\n }\n return byteStr.slice(0, len) + '…';\n};\n/**\n * Checks provided Uint8Array for leading zeroes and throws if found.\n *\n * Examples:\n *\n * Valid values: 0x1, 0x, 0x01, 0x1234\n * Invalid values: 0x0, 0x00, 0x001, 0x0001\n *\n * Note: This method is useful for validating that RLP encoded integers comply with the rule that all\n * integer values encoded to RLP must be in the most compact form and contain no leading zero bytes\n * @param values An object containing string keys and Uint8Array values\n * @throws if any provided value is found to have leading zero bytes\n */\nexport const validateNoLeadingZeroes = (values) => {\n for (const [k, v] of Object.entries(values)) {\n if (v !== undefined && v.length > 0 && v[0] === 0) {\n throw new Error(`${k} cannot have leading zeroes, received: ${bytesToHex(v)}`);\n }\n }\n};\n/**\n * Converts a {@link bigint} to a `0x` prefixed hex string\n * @param {bigint} num the bigint to convert\n * @returns {PrefixedHexString}\n */\nexport const bigIntToHex = (num) => {\n return '0x' + num.toString(16);\n};\n/**\n * Convert value from bigint to an unpadded Uint8Array\n * (useful for RLP transport)\n * @param {bigint} value the bigint to convert\n * @returns {Uint8Array}\n */\nexport const bigIntToUnpaddedBytes = (value) => {\n return unpadBytes(bigIntToBytes(value));\n};\n/**\n * Convert value from number to an unpadded Uint8Array\n * (useful for RLP transport)\n * @param {number} value the bigint to convert\n * @returns {Uint8Array}\n */\nexport const intToUnpaddedBytes = (value) => {\n return unpadBytes(intToBytes(value));\n};\n/**\n * Compares two Uint8Arrays and returns a number indicating their order in a sorted array.\n *\n * @param {Uint8Array} value1 - The first Uint8Array to compare.\n * @param {Uint8Array} value2 - The second Uint8Array to compare.\n * @returns {number} A positive number if value1 is larger than value2,\n * A negative number if value1 is smaller than value2,\n * or 0 if value1 and value2 are equal.\n */\nexport const compareBytes = (value1, value2) => {\n const bigIntValue1 = bytesToBigInt(value1);\n const bigIntValue2 = bytesToBigInt(value2);\n return bigIntValue1 > bigIntValue2 ? 1 : bigIntValue1 < bigIntValue2 ? -1 : 0;\n};\n/**\n * Generates a Uint8Array of random bytes of specified length.\n *\n * @param {number} length - The length of the Uint8Array.\n * @returns {Uint8Array} A Uint8Array of random bytes of specified length.\n */\nexport const randomBytes = (length) => {\n return getRandomBytesSync(length);\n};\n/**\n * This mirrors the functionality of the `ethereum-cryptography` export except\n * it skips the check to validate that every element of `arrays` is indead a `uint8Array`\n * Can give small performance gains on large arrays\n * @param {Uint8Array[]} arrays an array of Uint8Arrays\n * @returns {Uint8Array} one Uint8Array with all the elements of the original set\n * works like `Buffer.concat`\n */\nexport const concatBytes = (...arrays) => {\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n};\n/**\n * @notice Convert a Uint8Array to a 32-bit integer\n * @param {Uint8Array} bytes The input Uint8Array from which to read the 32-bit integer.\n * @param {boolean} littleEndian True for little-endian, undefined or false for big-endian.\n * @throws {Error} If the input Uint8Array has a length less than 4.\n * @return {number} The 32-bit integer read from the input Uint8Array.\n */\nexport function bytesToInt32(bytes, littleEndian = false) {\n if (bytes.length < 4) {\n throw new Error('The input Uint8Array must have at least 4 bytes.');\n }\n const dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n return dataView.getInt32(0, littleEndian);\n}\n/**\n * @notice Convert a Uint8Array to a 64-bit bigint\n * @param {Uint8Array} bytes The input Uint8Array from which to read the 64-bit bigint.\n * @param {boolean} littleEndian True for little-endian, undefined or false for big-endian.\n * @throws {Error} If the input Uint8Array has a length less than 8.\n * @return {bigint} The 64-bit bigint read from the input Uint8Array.\n */\nexport function bytesToBigInt64(bytes, littleEndian = false) {\n if (bytes.length < 8) {\n throw new Error('The input Uint8Array must have at least 8 bytes.');\n }\n const dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n return dataView.getBigInt64(0, littleEndian);\n}\n/**\n * @notice Convert a 32-bit integer to a Uint8Array.\n * @param {number} value The 32-bit integer to convert.\n * @param {boolean} littleEndian True for little-endian, undefined or false for big-endian.\n * @return {Uint8Array} A Uint8Array of length 4 containing the integer.\n */\nexport function int32ToBytes(value, littleEndian = false) {\n const buffer = new ArrayBuffer(4);\n const dataView = new DataView(buffer);\n dataView.setInt32(0, value, littleEndian);\n return new Uint8Array(buffer);\n}\n/**\n * @notice Convert a 64-bit bigint to a Uint8Array.\n * @param {bigint} value The 64-bit bigint to convert.\n * @param {boolean} littleEndian True for little-endian, undefined or false for big-endian.\n * @return {Uint8Array} A Uint8Array of length 8 containing the bigint.\n */\nexport function bigInt64ToBytes(value, littleEndian = false) {\n const buffer = new ArrayBuffer(8);\n const dataView = new DataView(buffer);\n dataView.setBigInt64(0, value, littleEndian);\n return new Uint8Array(buffer);\n}\n// eslint-disable-next-line no-restricted-imports\nexport { bytesToUtf8, equalsBytes, utf8ToBytes } from 'ethereum-cryptography/utils.js';\n//# sourceMappingURL=bytes.js.map","import { secp256k1 } from 'ethereum-cryptography/secp256k1.js';\nimport { hexToBytes } from './bytes.js';\n/**\n * 2^64-1\n */\nexport const MAX_UINT64 = BigInt('0xffffffffffffffff');\n/**\n * The max integer that the evm can handle (2^256-1)\n */\nexport const MAX_INTEGER = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\n/**\n * The max integer that the evm can handle (2^256-1) as a bigint\n * 2^256-1 equals to 340282366920938463463374607431768211455\n * We use literal value instead of calculated value for compatibility issue.\n */\nexport const MAX_INTEGER_BIGINT = BigInt('115792089237316195423570985008687907853269984665640564039457584007913129639935');\nexport const SECP256K1_ORDER = secp256k1.CURVE.n;\nexport const SECP256K1_ORDER_DIV_2 = secp256k1.CURVE.n / BigInt(2);\n/**\n * 2^256\n */\nexport const TWO_POW256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\n/**\n * Keccak-256 hash of null\n */\nexport const KECCAK256_NULL_S = '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\n/**\n * Keccak-256 hash of null\n */\nexport const KECCAK256_NULL = hexToBytes(KECCAK256_NULL_S);\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexport const KECCAK256_RLP_ARRAY_S = '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347';\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexport const KECCAK256_RLP_ARRAY = hexToBytes(KECCAK256_RLP_ARRAY_S);\n/**\n * Keccak-256 hash of the RLP of null\n */\nexport const KECCAK256_RLP_S = '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421';\n/**\n * Keccak-256 hash of the RLP of null\n */\nexport const KECCAK256_RLP = hexToBytes(KECCAK256_RLP_S);\n/**\n * RLP encoded empty string\n */\nexport const RLP_EMPTY_STRING = Uint8Array.from([0x80]);\nexport const MAX_WITHDRAWALS_PER_PAYLOAD = 16;\nexport const RIPEMD160_ADDRESS_STRING = '0000000000000000000000000000000000000003';\n/**\n * BigInt constants\n */\nexport const BIGINT_NEG1 = BigInt(-1);\nexport const BIGINT_0 = BigInt(0);\nexport const BIGINT_1 = BigInt(1);\nexport const BIGINT_2 = BigInt(2);\nexport const BIGINT_3 = BigInt(3);\nexport const BIGINT_7 = BigInt(7);\nexport const BIGINT_8 = BigInt(8);\nexport const BIGINT_27 = BigInt(27);\nexport const BIGINT_28 = BigInt(28);\nexport const BIGINT_31 = BigInt(31);\nexport const BIGINT_32 = BigInt(32);\nexport const BIGINT_64 = BigInt(64);\nexport const BIGINT_128 = BigInt(128);\nexport const BIGINT_255 = BigInt(255);\nexport const BIGINT_256 = BigInt(256);\nexport const BIGINT_96 = BigInt(96);\nexport const BIGINT_100 = BigInt(100);\nexport const BIGINT_160 = BigInt(160);\nexport const BIGINT_224 = BigInt(224);\nexport const BIGINT_2EXP96 = BigInt(79228162514264337593543950336);\nexport const BIGINT_2EXP160 = BigInt(1461501637330902918203684832716283019655932542976);\nexport const BIGINT_2EXP224 = BigInt(26959946667150639794667015087019630673637144422540572481103610249216);\nexport const BIGINT_2EXP256 = BIGINT_2 ** BIGINT_256;\n//# sourceMappingURL=constants.js.map","import { BIGINT_0, BIGINT_1 } from './constants.js';\n/** Easy conversion from Gwei to wei */\nexport const GWEI_TO_WEI = BigInt(1000000000);\nexport function formatBigDecimal(numerator, denominator, maxDecimalFactor) {\n if (denominator === BIGINT_0) {\n denominator = BIGINT_1;\n }\n const full = numerator / denominator;\n const fraction = ((numerator - full * denominator) * maxDecimalFactor) / denominator;\n // zeros to be added post decimal are number of zeros in maxDecimalFactor - number of digits in fraction\n const zerosPostDecimal = String(maxDecimalFactor).length - 1 - String(fraction).length;\n return `${full}.${'0'.repeat(zerosPostDecimal)}${fraction}`;\n}\n//# sourceMappingURL=units.js.map","/**\n * RLP Encoding based on https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/\n * This function takes in data, converts it to Uint8Array if not,\n * and adds a length for recursion.\n * @param input Will be converted to Uint8Array\n * @returns Uint8Array of encoded data\n **/\nexport function encode(input) {\n if (Array.isArray(input)) {\n const output = [];\n let outputLength = 0;\n for (let i = 0; i < input.length; i++) {\n const encoded = encode(input[i]);\n output.push(encoded);\n outputLength += encoded.length;\n }\n return concatBytes(encodeLength(outputLength, 192), ...output);\n }\n const inputBuf = toBytes(input);\n if (inputBuf.length === 1 && inputBuf[0] < 128) {\n return inputBuf;\n }\n return concatBytes(encodeLength(inputBuf.length, 128), inputBuf);\n}\n/**\n * Slices a Uint8Array, throws if the slice goes out-of-bounds of the Uint8Array.\n * E.g. `safeSlice(hexToBytes('aa'), 1, 2)` will throw.\n * @param input\n * @param start\n * @param end\n */\nfunction safeSlice(input, start, end) {\n if (end > input.length) {\n throw new Error('invalid RLP (safeSlice): end slice of Uint8Array out-of-bounds');\n }\n return input.slice(start, end);\n}\n/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n */\nfunction decodeLength(v) {\n if (v[0] === 0) {\n throw new Error('invalid RLP: extra zeros');\n }\n return parseHexByte(bytesToHex(v));\n}\nfunction encodeLength(len, offset) {\n if (len < 56) {\n return Uint8Array.from([len + offset]);\n }\n const hexLength = numberToHex(len);\n const lLength = hexLength.length / 2;\n const firstByte = numberToHex(offset + 55 + lLength);\n return Uint8Array.from(hexToBytes(firstByte + hexLength));\n}\nexport function decode(input, stream = false) {\n if (typeof input === 'undefined' || input === null || input.length === 0) {\n return Uint8Array.from([]);\n }\n const inputBytes = toBytes(input);\n const decoded = _decode(inputBytes);\n if (stream) {\n return decoded;\n }\n if (decoded.remainder.length !== 0) {\n throw new Error('invalid RLP: remainder must be zero');\n }\n return decoded.data;\n}\n/** Decode an input with RLP */\nfunction _decode(input) {\n let length, llength, data, innerRemainder, d;\n const decoded = [];\n const firstByte = input[0];\n if (firstByte <= 0x7f) {\n // a single byte whose value is in the [0x00, 0x7f] range, that byte is its own RLP encoding.\n return {\n data: input.slice(0, 1),\n remainder: input.slice(1),\n };\n }\n else if (firstByte <= 0xb7) {\n // string is 0-55 bytes long. A single byte with value 0x80 plus the length of the string followed by the string\n // The range of the first byte is [0x80, 0xb7]\n length = firstByte - 0x7f;\n // set 0x80 null to 0\n if (firstByte === 0x80) {\n data = Uint8Array.from([]);\n }\n else {\n data = safeSlice(input, 1, length);\n }\n if (length === 2 && data[0] < 0x80) {\n throw new Error('invalid RLP encoding: invalid prefix, single byte < 0x80 are not prefixed');\n }\n return {\n data,\n remainder: input.slice(length),\n };\n }\n else if (firstByte <= 0xbf) {\n // string is greater than 55 bytes long. A single byte with the value (0xb7 plus the length of the length),\n // followed by the length, followed by the string\n llength = firstByte - 0xb6;\n if (input.length - 1 < llength) {\n throw new Error('invalid RLP: not enough bytes for string length');\n }\n length = decodeLength(safeSlice(input, 1, llength));\n if (length <= 55) {\n throw new Error('invalid RLP: expected string length to be greater than 55');\n }\n data = safeSlice(input, llength, length + llength);\n return {\n data,\n remainder: input.slice(length + llength),\n };\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n length = firstByte - 0xbf;\n innerRemainder = safeSlice(input, 1, length);\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(length),\n };\n }\n else {\n // a list over 55 bytes long\n llength = firstByte - 0xf6;\n length = decodeLength(safeSlice(input, 1, llength));\n if (length < 56) {\n throw new Error('invalid RLP: encoded list too short');\n }\n const totalLength = llength + length;\n if (totalLength > input.length) {\n throw new Error('invalid RLP: total length is larger than the data');\n }\n innerRemainder = safeSlice(input, llength, totalLength);\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(totalLength),\n };\n }\n}\nconst cachedHexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n // Pre-caching chars with `cachedHexes` speeds this up 6x\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += cachedHexes[uint8a[i]];\n }\n return hex;\n}\nfunction parseHexByte(hexByte) {\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n return byte;\n}\n// Caching slows it down 2-3x\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n array[i] = parseHexByte(hex.slice(j, j + 2));\n }\n return array;\n}\n/** Concatenates two Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nfunction utf8ToBytes(utf) {\n return new TextEncoder().encode(utf);\n}\n/** Transform an integer into its hexadecimal value */\nfunction numberToHex(integer) {\n if (integer < 0) {\n throw new Error('Invalid integer as argument, must be unsigned!');\n }\n const hex = integer.toString(16);\n return hex.length % 2 ? `0${hex}` : hex;\n}\n/** Pad a string to be even */\nfunction padToEven(a) {\n return a.length % 2 ? `0${a}` : a;\n}\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str) {\n return str.length >= 2 && str[0] === '0' && str[1] === 'x';\n}\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n/** Transform anything into a Uint8Array */\nfunction toBytes(v) {\n if (v instanceof Uint8Array) {\n return v;\n }\n if (typeof v === 'string') {\n if (isHexPrefixed(v)) {\n return hexToBytes(padToEven(stripHexPrefix(v)));\n }\n return utf8ToBytes(v);\n }\n if (typeof v === 'number' || typeof v === 'bigint') {\n if (!v) {\n return Uint8Array.from([]);\n }\n return hexToBytes(numberToHex(v));\n }\n if (v === null || v === undefined) {\n return Uint8Array.from([]);\n }\n throw new Error('toBytes: received unsupported type ' + typeof v);\n}\nexport const utils = {\n bytesToHex,\n concatBytes,\n hexToBytes,\n utf8ToBytes,\n};\nexport const RLP = { encode, decode };\n//# sourceMappingURL=index.js.map","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import assert from './_assert.js';\nimport u64 from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n assert.number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n assert.exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n assert.exists(this, false);\n assert.bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n assert.number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n assert.output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = gen(0x06, 136, 256 / 8);\nexport const sha3_384 = gen(0x06, 104, 384 / 8);\nexport const sha3_512 = gen(0x06, 72, 512 / 8);\nexport const keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = gen(0x01, 136, 256 / 8);\nexport const keccak_384 = gen(0x01, 104, 384 / 8);\nexport const keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = genShake(0x1f, 168, 128 / 8);\nexport const shake256 = genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import { keccak_224, keccak_256, keccak_384, keccak_512 } from \"@noble/hashes/sha3\";\nimport { wrapHash } from \"./utils.js\";\nexport const keccak224 = wrapHash(keccak_224);\nexport const keccak256 = (() => {\n const k = wrapHash(keccak_256);\n k.create = keccak_256.create;\n return k;\n})();\nexport const keccak384 = wrapHash(keccak_384);\nexport const keccak512 = wrapHash(keccak_512);\n","export var KeyEncoding;\n(function (KeyEncoding) {\n KeyEncoding[\"String\"] = \"string\";\n KeyEncoding[\"Bytes\"] = \"view\";\n KeyEncoding[\"Number\"] = \"number\";\n})(KeyEncoding || (KeyEncoding = {}));\nexport var ValueEncoding;\n(function (ValueEncoding) {\n ValueEncoding[\"String\"] = \"string\";\n ValueEncoding[\"Bytes\"] = \"view\";\n ValueEncoding[\"JSON\"] = \"json\";\n})(ValueEncoding || (ValueEncoding = {}));\n//# sourceMappingURL=db.js.map","import { bytesToBigInt, bytesToHex, toBytes } from './bytes.js';\nimport { isHexString } from './internal.js';\n/**\n * Type output options\n */\nexport var TypeOutput;\n(function (TypeOutput) {\n TypeOutput[TypeOutput[\"Number\"] = 0] = \"Number\";\n TypeOutput[TypeOutput[\"BigInt\"] = 1] = \"BigInt\";\n TypeOutput[TypeOutput[\"Uint8Array\"] = 2] = \"Uint8Array\";\n TypeOutput[TypeOutput[\"PrefixedHexString\"] = 3] = \"PrefixedHexString\";\n})(TypeOutput || (TypeOutput = {}));\nexport function toType(input, outputType) {\n if (input === null) {\n return null;\n }\n if (input === undefined) {\n return undefined;\n }\n if (typeof input === 'string' && !isHexString(input)) {\n throw new Error(`A string must be provided with a 0x-prefix, given: ${input}`);\n }\n else if (typeof input === 'number' && !Number.isSafeInteger(input)) {\n throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');\n }\n const output = toBytes(input);\n switch (outputType) {\n case TypeOutput.Uint8Array:\n return output;\n case TypeOutput.BigInt:\n return bytesToBigInt(output);\n case TypeOutput.Number: {\n const bigInt = bytesToBigInt(output);\n if (bigInt > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');\n }\n return Number(bigInt);\n }\n case TypeOutput.PrefixedHexString:\n return bytesToHex(output);\n default:\n throw new Error('unknown outputType');\n }\n}\n//# sourceMappingURL=types.js.map","import { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { secp256k1 } from 'ethereum-cryptography/secp256k1.js';\nimport { bytesToBigInt, bytesToHex, bytesToInt, concatBytes, setLengthLeft, toBytes, utf8ToBytes, } from './bytes.js';\nimport { BIGINT_0, BIGINT_1, BIGINT_2, BIGINT_27, SECP256K1_ORDER, SECP256K1_ORDER_DIV_2, } from './constants.js';\nimport { assertIsBytes } from './helpers.js';\n/**\n * Returns the ECDSA signature of a message hash.\n *\n * If `chainId` is provided assume an EIP-155-style signature and calculate the `v` value\n * accordingly, otherwise return a \"static\" `v` just derived from the `recovery` bit\n */\nexport function ecsign(msgHash, privateKey, chainId) {\n const sig = secp256k1.sign(msgHash, privateKey);\n const buf = sig.toCompactRawBytes();\n const r = buf.slice(0, 32);\n const s = buf.slice(32, 64);\n const v = chainId === undefined\n ? BigInt(sig.recovery + 27)\n : BigInt(sig.recovery + 35) + BigInt(chainId) * BIGINT_2;\n return { r, s, v };\n}\nfunction calculateSigRecovery(v, chainId) {\n if (v === BIGINT_0 || v === BIGINT_1)\n return v;\n if (chainId === undefined) {\n return v - BIGINT_27;\n }\n return v - (chainId * BIGINT_2 + BigInt(35));\n}\nfunction isValidSigRecovery(recovery) {\n return recovery === BIGINT_0 || recovery === BIGINT_1;\n}\n/**\n * ECDSA public key recovery from signature.\n * NOTE: Accepts `v === 0 | v === 1` for EIP1559 transactions\n * @returns Recovered public key\n */\nexport const ecrecover = function (msgHash, v, r, s, chainId) {\n const signature = concatBytes(setLengthLeft(r, 32), setLengthLeft(s, 32));\n const recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n const sig = secp256k1.Signature.fromCompact(signature).addRecoveryBit(Number(recovery));\n const senderPubKey = sig.recoverPublicKey(msgHash);\n return senderPubKey.toRawBytes(false).slice(1);\n};\n/**\n * Convert signature parameters into the format of `eth_sign` RPC method.\n * NOTE: Accepts `v === 0 | v === 1` for EIP1559 transactions\n * @returns Signature\n */\nexport const toRpcSig = function (v, r, s, chainId) {\n const recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n // geth (and the RPC eth_sign method) uses the 65 byte format used by Bitcoin\n return bytesToHex(concatBytes(setLengthLeft(r, 32), setLengthLeft(s, 32), toBytes(v)));\n};\n/**\n * Convert signature parameters into the format of Compact Signature Representation (EIP-2098).\n * NOTE: Accepts `v === 0 | v === 1` for EIP1559 transactions\n * @returns Signature\n */\nexport const toCompactSig = function (v, r, s, chainId) {\n const recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n const ss = Uint8Array.from([...s]);\n if ((v > BigInt(28) && v % BIGINT_2 === BIGINT_1) || v === BIGINT_1 || v === BigInt(28)) {\n ss[0] |= 0x80;\n }\n return bytesToHex(concatBytes(setLengthLeft(r, 32), setLengthLeft(ss, 32)));\n};\n/**\n * Convert signature format of the `eth_sign` RPC method to signature parameters\n *\n * NOTE: For an extracted `v` value < 27 (see Geth bug https://github.com/ethereum/go-ethereum/issues/2053)\n * `v + 27` is returned for the `v` value\n * NOTE: After EIP1559, `v` could be `0` or `1` but this function assumes\n * it's a signed message (EIP-191 or EIP-712) adding `27` at the end. Remove if needed.\n */\nexport const fromRpcSig = function (sig) {\n const bytes = toBytes(sig);\n let r;\n let s;\n let v;\n if (bytes.length >= 65) {\n r = bytes.subarray(0, 32);\n s = bytes.subarray(32, 64);\n v = bytesToBigInt(bytes.subarray(64));\n }\n else if (bytes.length === 64) {\n // Compact Signature Representation (https://eips.ethereum.org/EIPS/eip-2098)\n r = bytes.subarray(0, 32);\n s = bytes.subarray(32, 64);\n v = BigInt(bytesToInt(bytes.subarray(32, 33)) >> 7);\n s[0] &= 0x7f;\n }\n else {\n throw new Error('Invalid signature length');\n }\n // support both versions of `eth_sign` responses\n if (v < 27) {\n v = v + BIGINT_27;\n }\n return {\n v,\n r,\n s,\n };\n};\n/**\n * Validate a ECDSA signature.\n * NOTE: Accepts `v === 0 | v === 1` for EIP1559 transactions\n * @param homesteadOrLater Indicates whether this is being used on either the homestead hardfork or a later one\n */\nexport const isValidSignature = function (v, r, s, homesteadOrLater = true, chainId) {\n if (r.length !== 32 || s.length !== 32) {\n return false;\n }\n if (!isValidSigRecovery(calculateSigRecovery(v, chainId))) {\n return false;\n }\n const rBigInt = bytesToBigInt(r);\n const sBigInt = bytesToBigInt(s);\n if (rBigInt === BIGINT_0 ||\n rBigInt >= SECP256K1_ORDER ||\n sBigInt === BIGINT_0 ||\n sBigInt >= SECP256K1_ORDER) {\n return false;\n }\n if (homesteadOrLater && sBigInt >= SECP256K1_ORDER_DIV_2) {\n return false;\n }\n return true;\n};\n/**\n * Returns the keccak-256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.\n * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`\n * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key\n * used to produce the signature.\n */\nexport const hashPersonalMessage = function (message) {\n assertIsBytes(message);\n const prefix = utf8ToBytes(`\\u0019Ethereum Signed Message:\\n${message.length}`);\n return keccak256(concatBytes(prefix, message));\n};\n//# sourceMappingURL=signature.js.map","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","// NOTE: this list must be up-to-date with browsers listed in\n// test/acceptance/useragentstrings.yml\nexport const BROWSER_ALIASES_MAP = {\n 'Amazon Silk': 'amazon_silk',\n 'Android Browser': 'android',\n Bada: 'bada',\n BlackBerry: 'blackberry',\n Chrome: 'chrome',\n Chromium: 'chromium',\n Electron: 'electron',\n Epiphany: 'epiphany',\n Firefox: 'firefox',\n Focus: 'focus',\n Generic: 'generic',\n 'Google Search': 'google_search',\n Googlebot: 'googlebot',\n 'Internet Explorer': 'ie',\n 'K-Meleon': 'k_meleon',\n Maxthon: 'maxthon',\n 'Microsoft Edge': 'edge',\n 'MZ Browser': 'mz',\n 'NAVER Whale Browser': 'naver',\n Opera: 'opera',\n 'Opera Coast': 'opera_coast',\n PhantomJS: 'phantomjs',\n Puffin: 'puffin',\n QupZilla: 'qupzilla',\n QQ: 'qq',\n QQLite: 'qqlite',\n Safari: 'safari',\n Sailfish: 'sailfish',\n 'Samsung Internet for Android': 'samsung_internet',\n SeaMonkey: 'seamonkey',\n Sleipnir: 'sleipnir',\n Swing: 'swing',\n Tizen: 'tizen',\n 'UC Browser': 'uc',\n Vivaldi: 'vivaldi',\n 'WebOS Browser': 'webos',\n WeChat: 'wechat',\n 'Yandex Browser': 'yandex',\n Roku: 'roku',\n};\n\nexport const BROWSER_MAP = {\n amazon_silk: 'Amazon Silk',\n android: 'Android Browser',\n bada: 'Bada',\n blackberry: 'BlackBerry',\n chrome: 'Chrome',\n chromium: 'Chromium',\n electron: 'Electron',\n epiphany: 'Epiphany',\n firefox: 'Firefox',\n focus: 'Focus',\n generic: 'Generic',\n googlebot: 'Googlebot',\n google_search: 'Google Search',\n ie: 'Internet Explorer',\n k_meleon: 'K-Meleon',\n maxthon: 'Maxthon',\n edge: 'Microsoft Edge',\n mz: 'MZ Browser',\n naver: 'NAVER Whale Browser',\n opera: 'Opera',\n opera_coast: 'Opera Coast',\n phantomjs: 'PhantomJS',\n puffin: 'Puffin',\n qupzilla: 'QupZilla',\n qq: 'QQ Browser',\n qqlite: 'QQ Browser Lite',\n safari: 'Safari',\n sailfish: 'Sailfish',\n samsung_internet: 'Samsung Internet for Android',\n seamonkey: 'SeaMonkey',\n sleipnir: 'Sleipnir',\n swing: 'Swing',\n tizen: 'Tizen',\n uc: 'UC Browser',\n vivaldi: 'Vivaldi',\n webos: 'WebOS Browser',\n wechat: 'WeChat',\n yandex: 'Yandex Browser',\n};\n\nexport const PLATFORMS_MAP = {\n tablet: 'tablet',\n mobile: 'mobile',\n desktop: 'desktop',\n tv: 'tv',\n};\n\nexport const OS_MAP = {\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MacOS: 'macOS',\n iOS: 'iOS',\n Android: 'Android',\n WebOS: 'WebOS',\n BlackBerry: 'BlackBerry',\n Bada: 'Bada',\n Tizen: 'Tizen',\n Linux: 'Linux',\n ChromeOS: 'Chrome OS',\n PlayStation4: 'PlayStation 4',\n Roku: 'Roku',\n};\n\nexport const ENGINE_MAP = {\n EdgeHTML: 'EdgeHTML',\n Blink: 'Blink',\n Trident: 'Trident',\n Presto: 'Presto',\n Gecko: 'Gecko',\n WebKit: 'WebKit',\n};\n","import { BROWSER_MAP, BROWSER_ALIASES_MAP } from './constants.js';\n\nexport default class Utils {\n /**\n * Get first matched item for a string\n * @param {RegExp} regexp\n * @param {String} ua\n * @return {Array|{index: number, input: string}|*|boolean|string}\n */\n static getFirstMatch(regexp, ua) {\n const match = ua.match(regexp);\n return (match && match.length > 0 && match[1]) || '';\n }\n\n /**\n * Get second matched item for a string\n * @param regexp\n * @param {String} ua\n * @return {Array|{index: number, input: string}|*|boolean|string}\n */\n static getSecondMatch(regexp, ua) {\n const match = ua.match(regexp);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n /**\n * Match a regexp and return a constant or undefined\n * @param {RegExp} regexp\n * @param {String} ua\n * @param {*} _const Any const that will be returned if regexp matches the string\n * @return {*}\n */\n static matchAndReturnConst(regexp, ua, _const) {\n if (regexp.test(ua)) {\n return _const;\n }\n return void (0);\n }\n\n static getWindowsVersionName(version) {\n switch (version) {\n case 'NT': return 'NT';\n case 'XP': return 'XP';\n case 'NT 5.0': return '2000';\n case 'NT 5.1': return 'XP';\n case 'NT 5.2': return '2003';\n case 'NT 6.0': return 'Vista';\n case 'NT 6.1': return '7';\n case 'NT 6.2': return '8';\n case 'NT 6.3': return '8.1';\n case 'NT 10.0': return '10';\n default: return undefined;\n }\n }\n\n /**\n * Get macOS version name\n * 10.5 - Leopard\n * 10.6 - Snow Leopard\n * 10.7 - Lion\n * 10.8 - Mountain Lion\n * 10.9 - Mavericks\n * 10.10 - Yosemite\n * 10.11 - El Capitan\n * 10.12 - Sierra\n * 10.13 - High Sierra\n * 10.14 - Mojave\n * 10.15 - Catalina\n *\n * @example\n * getMacOSVersionName(\"10.14\") // 'Mojave'\n *\n * @param {string} version\n * @return {string} versionName\n */\n static getMacOSVersionName(version) {\n const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);\n v.push(0);\n if (v[0] !== 10) return undefined;\n switch (v[1]) {\n case 5: return 'Leopard';\n case 6: return 'Snow Leopard';\n case 7: return 'Lion';\n case 8: return 'Mountain Lion';\n case 9: return 'Mavericks';\n case 10: return 'Yosemite';\n case 11: return 'El Capitan';\n case 12: return 'Sierra';\n case 13: return 'High Sierra';\n case 14: return 'Mojave';\n case 15: return 'Catalina';\n default: return undefined;\n }\n }\n\n /**\n * Get Android version name\n * 1.5 - Cupcake\n * 1.6 - Donut\n * 2.0 - Eclair\n * 2.1 - Eclair\n * 2.2 - Froyo\n * 2.x - Gingerbread\n * 3.x - Honeycomb\n * 4.0 - Ice Cream Sandwich\n * 4.1 - Jelly Bean\n * 4.4 - KitKat\n * 5.x - Lollipop\n * 6.x - Marshmallow\n * 7.x - Nougat\n * 8.x - Oreo\n * 9.x - Pie\n *\n * @example\n * getAndroidVersionName(\"7.0\") // 'Nougat'\n *\n * @param {string} version\n * @return {string} versionName\n */\n static getAndroidVersionName(version) {\n const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);\n v.push(0);\n if (v[0] === 1 && v[1] < 5) return undefined;\n if (v[0] === 1 && v[1] < 6) return 'Cupcake';\n if (v[0] === 1 && v[1] >= 6) return 'Donut';\n if (v[0] === 2 && v[1] < 2) return 'Eclair';\n if (v[0] === 2 && v[1] === 2) return 'Froyo';\n if (v[0] === 2 && v[1] > 2) return 'Gingerbread';\n if (v[0] === 3) return 'Honeycomb';\n if (v[0] === 4 && v[1] < 1) return 'Ice Cream Sandwich';\n if (v[0] === 4 && v[1] < 4) return 'Jelly Bean';\n if (v[0] === 4 && v[1] >= 4) return 'KitKat';\n if (v[0] === 5) return 'Lollipop';\n if (v[0] === 6) return 'Marshmallow';\n if (v[0] === 7) return 'Nougat';\n if (v[0] === 8) return 'Oreo';\n if (v[0] === 9) return 'Pie';\n return undefined;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getVersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @return {number}\n */\n static getVersionPrecision(version) {\n return version.split('.').length;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions('1.10.2.1', '1.8.2.1.90') // 1\n * compareVersions('1.010.2.1', '1.09.2.1.90'); // 1\n * compareVersions('1.10.2.1', '1.10.2.1'); // 0\n * compareVersions('1.10.2.1', '1.0800.2'); // -1\n * compareVersions('1.10.2.1', '1.10', true); // 0\n *\n * @param {String} versionA versions versions to compare\n * @param {String} versionB versions versions to compare\n * @param {boolean} [isLoose] enable loose comparison\n * @return {Number} comparison result: -1 when versionA is lower,\n * 1 when versionA is bigger, 0 when both equal\n */\n /* eslint consistent-return: 1 */\n static compareVersions(versionA, versionB, isLoose = false) {\n // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n const versionAPrecision = Utils.getVersionPrecision(versionA);\n const versionBPrecision = Utils.getVersionPrecision(versionB);\n\n let precision = Math.max(versionAPrecision, versionBPrecision);\n let lastPrecision = 0;\n\n const chunks = Utils.map([versionA, versionB], (version) => {\n const delta = precision - Utils.getVersionPrecision(version);\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n const _version = version + new Array(delta + 1).join('.0');\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return Utils.map(_version.split('.'), chunk => new Array(20 - chunk.length).join('0') + chunk).reverse();\n });\n\n // adjust precision for loose comparison\n if (isLoose) {\n lastPrecision = precision - Math.min(versionAPrecision, versionBPrecision);\n }\n\n // iterate in reverse order by reversed chunks array\n precision -= 1;\n while (precision >= lastPrecision) {\n // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precision]) {\n return 1;\n }\n\n if (chunks[0][precision] === chunks[1][precision]) {\n if (precision === lastPrecision) {\n // all version chunks are same\n return 0;\n }\n\n precision -= 1;\n } else if (chunks[0][precision] < chunks[1][precision]) {\n return -1;\n }\n }\n\n return undefined;\n }\n\n /**\n * Array::map polyfill\n *\n * @param {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n static map(arr, iterator) {\n const result = [];\n let i;\n if (Array.prototype.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i += 1) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Array::find polyfill\n *\n * @param {Array} arr\n * @param {Function} predicate\n * @return {Array}\n */\n static find(arr, predicate) {\n let i;\n let l;\n if (Array.prototype.find) {\n return Array.prototype.find.call(arr, predicate);\n }\n for (i = 0, l = arr.length; i < l; i += 1) {\n const value = arr[i];\n if (predicate(value, i)) {\n return value;\n }\n }\n return undefined;\n }\n\n /**\n * Object::assign polyfill\n *\n * @param {Object} obj\n * @param {Object} ...objs\n * @return {Object}\n */\n static assign(obj, ...assigners) {\n const result = obj;\n let i;\n let l;\n if (Object.assign) {\n return Object.assign(obj, ...assigners);\n }\n for (i = 0, l = assigners.length; i < l; i += 1) {\n const assigner = assigners[i];\n if (typeof assigner === 'object' && assigner !== null) {\n const keys = Object.keys(assigner);\n keys.forEach((key) => {\n result[key] = assigner[key];\n });\n }\n }\n return obj;\n }\n\n /**\n * Get short version/alias for a browser name\n *\n * @example\n * getBrowserAlias('Microsoft Edge') // edge\n *\n * @param {string} browserName\n * @return {string}\n */\n static getBrowserAlias(browserName) {\n return BROWSER_ALIASES_MAP[browserName];\n }\n\n /**\n * Get short version/alias for a browser name\n *\n * @example\n * getBrowserAlias('edge') // Microsoft Edge\n *\n * @param {string} browserAlias\n * @return {string}\n */\n static getBrowserTypeByAlias(browserAlias) {\n return BROWSER_MAP[browserAlias] || '';\n }\n}\n","/**\n * Browsers' descriptors\n *\n * The idea of descriptors is simple. You should know about them two simple things:\n * 1. Every descriptor has a method or property called `test` and a `describe` method.\n * 2. Order of descriptors is important.\n *\n * More details:\n * 1. Method or property `test` serves as a way to detect whether the UA string\n * matches some certain browser or not. The `describe` method helps to make a result\n * object with params that show some browser-specific things: name, version, etc.\n * 2. Order of descriptors is important because a Parser goes through them one by one\n * in course. For example, if you insert Chrome's descriptor as the first one,\n * more then a half of browsers will be described as Chrome, because they will pass\n * the Chrome descriptor's test.\n *\n * Descriptor's `test` could be a property with an array of RegExps, where every RegExp\n * will be applied to a UA string to test it whether it matches or not.\n * If a descriptor has two or more regexps in the `test` array it tests them one by one\n * with a logical sum operation. Parser stops if it has found any RegExp that matches the UA.\n *\n * Or `test` could be a method. In that case it gets a Parser instance and should\n * return true/false to get the Parser know if this browser descriptor matches the UA or not.\n */\n\nimport Utils from './utils.js';\n\nconst commonVersionIdentifier = /version\\/(\\d+(\\.?_?\\d+)+)/i;\n\nconst browsersList = [\n /* Googlebot */\n {\n test: [/googlebot/i],\n describe(ua) {\n const browser = {\n name: 'Googlebot',\n };\n const version = Utils.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Opera < 13.0 */\n {\n test: [/opera/i],\n describe(ua) {\n const browser = {\n name: 'Opera',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Opera > 13.0 */\n {\n test: [/opr\\/|opios/i],\n describe(ua) {\n const browser = {\n name: 'Opera',\n };\n const version = Utils.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/SamsungBrowser/i],\n describe(ua) {\n const browser = {\n name: 'Samsung Internet for Android',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/Whale/i],\n describe(ua) {\n const browser = {\n name: 'NAVER Whale Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/MZBrowser/i],\n describe(ua) {\n const browser = {\n name: 'MZ Browser',\n };\n const version = Utils.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/focus/i],\n describe(ua) {\n const browser = {\n name: 'Focus',\n };\n const version = Utils.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/swing/i],\n describe(ua) {\n const browser = {\n name: 'Swing',\n };\n const version = Utils.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/coast/i],\n describe(ua) {\n const browser = {\n name: 'Opera Coast',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n describe(ua) {\n const browser = {\n name: 'Opera Touch',\n };\n const version = Utils.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/yabrowser/i],\n describe(ua) {\n const browser = {\n name: 'Yandex Browser',\n };\n const version = Utils.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/ucbrowser/i],\n describe(ua) {\n const browser = {\n name: 'UC Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/Maxthon|mxios/i],\n describe(ua) {\n const browser = {\n name: 'Maxthon',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/epiphany/i],\n describe(ua) {\n const browser = {\n name: 'Epiphany',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/puffin/i],\n describe(ua) {\n const browser = {\n name: 'Puffin',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/sleipnir/i],\n describe(ua) {\n const browser = {\n name: 'Sleipnir',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/k-meleon/i],\n describe(ua) {\n const browser = {\n name: 'K-Meleon',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/micromessenger/i],\n describe(ua) {\n const browser = {\n name: 'WeChat',\n };\n const version = Utils.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/qqbrowser/i],\n describe(ua) {\n const browser = {\n name: (/qqbrowserlite/i).test(ua) ? 'QQ Browser Lite' : 'QQ Browser',\n };\n const version = Utils.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/msie|trident/i],\n describe(ua) {\n const browser = {\n name: 'Internet Explorer',\n };\n const version = Utils.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/\\sedg\\//i],\n describe(ua) {\n const browser = {\n name: 'Microsoft Edge',\n };\n\n const version = Utils.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/edg([ea]|ios)/i],\n describe(ua) {\n const browser = {\n name: 'Microsoft Edge',\n };\n\n const version = Utils.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/vivaldi/i],\n describe(ua) {\n const browser = {\n name: 'Vivaldi',\n };\n const version = Utils.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/seamonkey/i],\n describe(ua) {\n const browser = {\n name: 'SeaMonkey',\n };\n const version = Utils.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/sailfish/i],\n describe(ua) {\n const browser = {\n name: 'Sailfish',\n };\n\n const version = Utils.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/silk/i],\n describe(ua) {\n const browser = {\n name: 'Amazon Silk',\n };\n const version = Utils.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/phantom/i],\n describe(ua) {\n const browser = {\n name: 'PhantomJS',\n };\n const version = Utils.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/slimerjs/i],\n describe(ua) {\n const browser = {\n name: 'SlimerJS',\n };\n const version = Utils.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe(ua) {\n const browser = {\n name: 'BlackBerry',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/(web|hpw)[o0]s/i],\n describe(ua) {\n const browser = {\n name: 'WebOS Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/bada/i],\n describe(ua) {\n const browser = {\n name: 'Bada',\n };\n const version = Utils.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/tizen/i],\n describe(ua) {\n const browser = {\n name: 'Tizen',\n };\n const version = Utils.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/qupzilla/i],\n describe(ua) {\n const browser = {\n name: 'QupZilla',\n };\n const version = Utils.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/firefox|iceweasel|fxios/i],\n describe(ua) {\n const browser = {\n name: 'Firefox',\n };\n const version = Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/electron/i],\n describe(ua) {\n const browser = {\n name: 'Electron',\n };\n const version = Utils.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/MiuiBrowser/i],\n describe(ua) {\n const browser = {\n name: 'Miui',\n };\n const version = Utils.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/chromium/i],\n describe(ua) {\n const browser = {\n name: 'Chromium',\n };\n const version = Utils.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/chrome|crios|crmo/i],\n describe(ua) {\n const browser = {\n name: 'Chrome',\n };\n const version = Utils.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/GSA/i],\n describe(ua) {\n const browser = {\n name: 'Google Search',\n };\n const version = Utils.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Android Browser */\n {\n test(parser) {\n const notLikeAndroid = !parser.test(/like android/i);\n const butAndroid = parser.test(/android/i);\n return notLikeAndroid && butAndroid;\n },\n describe(ua) {\n const browser = {\n name: 'Android Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* PlayStation 4 */\n {\n test: [/playstation 4/i],\n describe(ua) {\n const browser = {\n name: 'PlayStation 4',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Safari */\n {\n test: [/safari|applewebkit/i],\n describe(ua) {\n const browser = {\n name: 'Safari',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Something else */\n {\n test: [/.*/i],\n describe(ua) {\n /* Here we try to make sure that there are explicit details about the device\n * in order to decide what regexp exactly we want to apply\n * (as there is a specific decision based on that conclusion)\n */\n const regexpWithoutDeviceSpec = /^(.*)\\/(.*) /;\n const regexpWithDeviceSpec = /^(.*)\\/(.*)[ \\t]\\((.*)/;\n const hasDeviceSpec = ua.search('\\\\(') !== -1;\n const regexp = hasDeviceSpec ? regexpWithDeviceSpec : regexpWithoutDeviceSpec;\n return {\n name: Utils.getFirstMatch(regexp, ua),\n version: Utils.getSecondMatch(regexp, ua),\n };\n },\n },\n];\n\nexport default browsersList;\n","import Utils from './utils.js';\nimport { OS_MAP } from './constants.js';\n\nexport default [\n /* Roku */\n {\n test: [/Roku\\/DVP/],\n describe(ua) {\n const version = Utils.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, ua);\n return {\n name: OS_MAP.Roku,\n version,\n };\n },\n },\n\n /* Windows Phone */\n {\n test: [/windows phone/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, ua);\n return {\n name: OS_MAP.WindowsPhone,\n version,\n };\n },\n },\n\n /* Windows */\n {\n test: [/windows /i],\n describe(ua) {\n const version = Utils.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, ua);\n const versionName = Utils.getWindowsVersionName(version);\n\n return {\n name: OS_MAP.Windows,\n version,\n versionName,\n };\n },\n },\n\n /* Firefox on iPad */\n {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe(ua) {\n const result = {\n name: OS_MAP.iOS,\n };\n const version = Utils.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, ua);\n if (version) {\n result.version = version;\n }\n return result;\n },\n },\n\n /* macOS */\n {\n test: [/macintosh/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, ua).replace(/[_\\s]/g, '.');\n const versionName = Utils.getMacOSVersionName(version);\n\n const os = {\n name: OS_MAP.MacOS,\n version,\n };\n if (versionName) {\n os.versionName = versionName;\n }\n return os;\n },\n },\n\n /* iOS */\n {\n test: [/(ipod|iphone|ipad)/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, ua).replace(/[_\\s]/g, '.');\n\n return {\n name: OS_MAP.iOS,\n version,\n };\n },\n },\n\n /* Android */\n {\n test(parser) {\n const notLikeAndroid = !parser.test(/like android/i);\n const butAndroid = parser.test(/android/i);\n return notLikeAndroid && butAndroid;\n },\n describe(ua) {\n const version = Utils.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, ua);\n const versionName = Utils.getAndroidVersionName(version);\n const os = {\n name: OS_MAP.Android,\n version,\n };\n if (versionName) {\n os.versionName = versionName;\n }\n return os;\n },\n },\n\n /* WebOS */\n {\n test: [/(web|hpw)[o0]s/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, ua);\n const os = {\n name: OS_MAP.WebOS,\n };\n\n if (version && version.length) {\n os.version = version;\n }\n return os;\n },\n },\n\n /* BlackBerry */\n {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, ua)\n || Utils.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, ua)\n || Utils.getFirstMatch(/\\bbb(\\d+)/i, ua);\n\n return {\n name: OS_MAP.BlackBerry,\n version,\n };\n },\n },\n\n /* Bada */\n {\n test: [/bada/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, ua);\n\n return {\n name: OS_MAP.Bada,\n version,\n };\n },\n },\n\n /* Tizen */\n {\n test: [/tizen/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, ua);\n\n return {\n name: OS_MAP.Tizen,\n version,\n };\n },\n },\n\n /* Linux */\n {\n test: [/linux/i],\n describe() {\n return {\n name: OS_MAP.Linux,\n };\n },\n },\n\n /* Chrome OS */\n {\n test: [/CrOS/],\n describe() {\n return {\n name: OS_MAP.ChromeOS,\n };\n },\n },\n\n /* Playstation 4 */\n {\n test: [/PlayStation 4/],\n describe(ua) {\n const version = Utils.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, ua);\n return {\n name: OS_MAP.PlayStation4,\n version,\n };\n },\n },\n];\n","import Utils from './utils.js';\nimport { PLATFORMS_MAP } from './constants.js';\n\n/*\n * Tablets go first since usually they have more specific\n * signs to detect.\n */\n\nexport default [\n /* Googlebot */\n {\n test: [/googlebot/i],\n describe() {\n return {\n type: 'bot',\n vendor: 'Google',\n };\n },\n },\n\n /* Huawei */\n {\n test: [/huawei/i],\n describe(ua) {\n const model = Utils.getFirstMatch(/(can-l01)/i, ua) && 'Nova';\n const platform = {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Huawei',\n };\n if (model) {\n platform.model = model;\n }\n return platform;\n },\n },\n\n /* Nexus Tablet */\n {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Nexus',\n };\n },\n },\n\n /* iPad */\n {\n test: [/ipad/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Apple',\n model: 'iPad',\n };\n },\n },\n\n /* Firefox on iPad */\n {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Apple',\n model: 'iPad',\n };\n },\n },\n\n /* Amazon Kindle Fire */\n {\n test: [/kftt build/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Amazon',\n model: 'Kindle Fire HD 7',\n };\n },\n },\n\n /* Another Amazon Tablet with Silk */\n {\n test: [/silk/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Amazon',\n };\n },\n },\n\n /* Tablet */\n {\n test: [/tablet(?! pc)/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n };\n },\n },\n\n /* iPod/iPhone */\n {\n test(parser) {\n const iDevice = parser.test(/ipod|iphone/i);\n const likeIDevice = parser.test(/like (ipod|iphone)/i);\n return iDevice && !likeIDevice;\n },\n describe(ua) {\n const model = Utils.getFirstMatch(/(ipod|iphone)/i, ua);\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Apple',\n model,\n };\n },\n },\n\n /* Nexus Mobile */\n {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Nexus',\n };\n },\n },\n\n /* Mobile */\n {\n test: [/[^-]mobi/i],\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n };\n },\n },\n\n /* BlackBerry */\n {\n test(parser) {\n return parser.getBrowserName(true) === 'blackberry';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'BlackBerry',\n };\n },\n },\n\n /* Bada */\n {\n test(parser) {\n return parser.getBrowserName(true) === 'bada';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n };\n },\n },\n\n /* Windows Phone */\n {\n test(parser) {\n return parser.getBrowserName() === 'windows phone';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Microsoft',\n };\n },\n },\n\n /* Android Tablet */\n {\n test(parser) {\n const osMajorVersion = Number(String(parser.getOSVersion()).split('.')[0]);\n return parser.getOSName(true) === 'android' && (osMajorVersion >= 3);\n },\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n };\n },\n },\n\n /* Android Mobile */\n {\n test(parser) {\n return parser.getOSName(true) === 'android';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n };\n },\n },\n\n /* desktop */\n {\n test(parser) {\n return parser.getOSName(true) === 'macos';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.desktop,\n vendor: 'Apple',\n };\n },\n },\n\n /* Windows */\n {\n test(parser) {\n return parser.getOSName(true) === 'windows';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.desktop,\n };\n },\n },\n\n /* Linux */\n {\n test(parser) {\n return parser.getOSName(true) === 'linux';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.desktop,\n };\n },\n },\n\n /* PlayStation 4 */\n {\n test(parser) {\n return parser.getOSName(true) === 'playstation 4';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.tv,\n };\n },\n },\n\n /* Roku */\n {\n test(parser) {\n return parser.getOSName(true) === 'roku';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.tv,\n };\n },\n },\n];\n","import Utils from './utils.js';\nimport { ENGINE_MAP } from './constants.js';\n\n/*\n * More specific goes first\n */\nexport default [\n /* EdgeHTML */\n {\n test(parser) {\n return parser.getBrowserName(true) === 'microsoft edge';\n },\n describe(ua) {\n const isBlinkBased = /\\sedg\\//i.test(ua);\n\n // return blink if it's blink-based one\n if (isBlinkBased) {\n return {\n name: ENGINE_MAP.Blink,\n };\n }\n\n // otherwise match the version and return EdgeHTML\n const version = Utils.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n return {\n name: ENGINE_MAP.EdgeHTML,\n version,\n };\n },\n },\n\n /* Trident */\n {\n test: [/trident/i],\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.Trident,\n };\n\n const version = Utils.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n\n /* Presto */\n {\n test(parser) {\n return parser.test(/presto/i);\n },\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.Presto,\n };\n\n const version = Utils.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n\n /* Gecko */\n {\n test(parser) {\n const isGecko = parser.test(/gecko/i);\n const likeGecko = parser.test(/like gecko/i);\n return isGecko && !likeGecko;\n },\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.Gecko,\n };\n\n const version = Utils.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n\n /* Blink */\n {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe() {\n return {\n name: ENGINE_MAP.Blink,\n };\n },\n },\n\n /* WebKit */\n {\n test: [/(apple)?webkit/i],\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.WebKit,\n };\n\n const version = Utils.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n];\n","import browserParsersList from './parser-browsers.js';\nimport osParsersList from './parser-os.js';\nimport platformParsersList from './parser-platforms.js';\nimport enginesParsersList from './parser-engines.js';\nimport Utils from './utils.js';\n\n/**\n * The main class that arranges the whole parsing process.\n */\nclass Parser {\n /**\n * Create instance of Parser\n *\n * @param {String} UA User-Agent string\n * @param {Boolean} [skipParsing=false] parser can skip parsing in purpose of performance\n * improvements if you need to make a more particular parsing\n * like {@link Parser#parseBrowser} or {@link Parser#parsePlatform}\n *\n * @throw {Error} in case of empty UA String\n *\n * @constructor\n */\n constructor(UA, skipParsing = false) {\n if (UA === void (0) || UA === null || UA === '') {\n throw new Error(\"UserAgent parameter can't be empty\");\n }\n\n this._ua = UA;\n\n /**\n * @typedef ParsedResult\n * @property {Object} browser\n * @property {String|undefined} [browser.name]\n * Browser name, like `\"Chrome\"` or `\"Internet Explorer\"`\n * @property {String|undefined} [browser.version] Browser version as a String `\"12.01.45334.10\"`\n * @property {Object} os\n * @property {String|undefined} [os.name] OS name, like `\"Windows\"` or `\"macOS\"`\n * @property {String|undefined} [os.version] OS version, like `\"NT 5.1\"` or `\"10.11.1\"`\n * @property {String|undefined} [os.versionName] OS name, like `\"XP\"` or `\"High Sierra\"`\n * @property {Object} platform\n * @property {String|undefined} [platform.type]\n * platform type, can be either `\"desktop\"`, `\"tablet\"` or `\"mobile\"`\n * @property {String|undefined} [platform.vendor] Vendor of the device,\n * like `\"Apple\"` or `\"Samsung\"`\n * @property {String|undefined} [platform.model] Device model,\n * like `\"iPhone\"` or `\"Kindle Fire HD 7\"`\n * @property {Object} engine\n * @property {String|undefined} [engine.name]\n * Can be any of this: `WebKit`, `Blink`, `Gecko`, `Trident`, `Presto`, `EdgeHTML`\n * @property {String|undefined} [engine.version] String version of the engine\n */\n this.parsedResult = {};\n\n if (skipParsing !== true) {\n this.parse();\n }\n }\n\n /**\n * Get UserAgent string of current Parser instance\n * @return {String} User-Agent String of the current object\n *\n * @public\n */\n getUA() {\n return this._ua;\n }\n\n /**\n * Test a UA string for a regexp\n * @param {RegExp} regex\n * @return {Boolean}\n */\n test(regex) {\n return regex.test(this._ua);\n }\n\n /**\n * Get parsed browser object\n * @return {Object}\n */\n parseBrowser() {\n this.parsedResult.browser = {};\n\n const browserDescriptor = Utils.find(browserParsersList, (_browser) => {\n if (typeof _browser.test === 'function') {\n return _browser.test(this);\n }\n\n if (_browser.test instanceof Array) {\n return _browser.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (browserDescriptor) {\n this.parsedResult.browser = browserDescriptor.describe(this.getUA());\n }\n\n return this.parsedResult.browser;\n }\n\n /**\n * Get parsed browser object\n * @return {Object}\n *\n * @public\n */\n getBrowser() {\n if (this.parsedResult.browser) {\n return this.parsedResult.browser;\n }\n\n return this.parseBrowser();\n }\n\n /**\n * Get browser's name\n * @return {String} Browser's name or an empty string\n *\n * @public\n */\n getBrowserName(toLowerCase) {\n if (toLowerCase) {\n return String(this.getBrowser().name).toLowerCase() || '';\n }\n return this.getBrowser().name || '';\n }\n\n\n /**\n * Get browser's version\n * @return {String} version of browser\n *\n * @public\n */\n getBrowserVersion() {\n return this.getBrowser().version;\n }\n\n /**\n * Get OS\n * @return {Object}\n *\n * @example\n * this.getOS();\n * {\n * name: 'macOS',\n * version: '10.11.12'\n * }\n */\n getOS() {\n if (this.parsedResult.os) {\n return this.parsedResult.os;\n }\n\n return this.parseOS();\n }\n\n /**\n * Parse OS and save it to this.parsedResult.os\n * @return {*|{}}\n */\n parseOS() {\n this.parsedResult.os = {};\n\n const os = Utils.find(osParsersList, (_os) => {\n if (typeof _os.test === 'function') {\n return _os.test(this);\n }\n\n if (_os.test instanceof Array) {\n return _os.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (os) {\n this.parsedResult.os = os.describe(this.getUA());\n }\n\n return this.parsedResult.os;\n }\n\n /**\n * Get OS name\n * @param {Boolean} [toLowerCase] return lower-cased value\n * @return {String} name of the OS — macOS, Windows, Linux, etc.\n */\n getOSName(toLowerCase) {\n const { name } = this.getOS();\n\n if (toLowerCase) {\n return String(name).toLowerCase() || '';\n }\n\n return name || '';\n }\n\n /**\n * Get OS version\n * @return {String} full version with dots ('10.11.12', '5.6', etc)\n */\n getOSVersion() {\n return this.getOS().version;\n }\n\n /**\n * Get parsed platform\n * @return {{}}\n */\n getPlatform() {\n if (this.parsedResult.platform) {\n return this.parsedResult.platform;\n }\n\n return this.parsePlatform();\n }\n\n /**\n * Get platform name\n * @param {Boolean} [toLowerCase=false]\n * @return {*}\n */\n getPlatformType(toLowerCase = false) {\n const { type } = this.getPlatform();\n\n if (toLowerCase) {\n return String(type).toLowerCase() || '';\n }\n\n return type || '';\n }\n\n /**\n * Get parsed platform\n * @return {{}}\n */\n parsePlatform() {\n this.parsedResult.platform = {};\n\n const platform = Utils.find(platformParsersList, (_platform) => {\n if (typeof _platform.test === 'function') {\n return _platform.test(this);\n }\n\n if (_platform.test instanceof Array) {\n return _platform.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (platform) {\n this.parsedResult.platform = platform.describe(this.getUA());\n }\n\n return this.parsedResult.platform;\n }\n\n /**\n * Get parsed engine\n * @return {{}}\n */\n getEngine() {\n if (this.parsedResult.engine) {\n return this.parsedResult.engine;\n }\n\n return this.parseEngine();\n }\n\n /**\n * Get engines's name\n * @return {String} Engines's name or an empty string\n *\n * @public\n */\n getEngineName(toLowerCase) {\n if (toLowerCase) {\n return String(this.getEngine().name).toLowerCase() || '';\n }\n return this.getEngine().name || '';\n }\n\n /**\n * Get parsed platform\n * @return {{}}\n */\n parseEngine() {\n this.parsedResult.engine = {};\n\n const engine = Utils.find(enginesParsersList, (_engine) => {\n if (typeof _engine.test === 'function') {\n return _engine.test(this);\n }\n\n if (_engine.test instanceof Array) {\n return _engine.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (engine) {\n this.parsedResult.engine = engine.describe(this.getUA());\n }\n\n return this.parsedResult.engine;\n }\n\n /**\n * Parse full information about the browser\n * @returns {Parser}\n */\n parse() {\n this.parseBrowser();\n this.parseOS();\n this.parsePlatform();\n this.parseEngine();\n\n return this;\n }\n\n /**\n * Get parsed result\n * @return {ParsedResult}\n */\n getResult() {\n return Utils.assign({}, this.parsedResult);\n }\n\n /**\n * Check if parsed browser matches certain conditions\n *\n * @param {Object} checkTree It's one or two layered object,\n * which can include a platform or an OS on the first layer\n * and should have browsers specs on the bottom-laying layer\n *\n * @returns {Boolean|undefined} Whether the browser satisfies the set conditions or not.\n * Returns `undefined` when the browser is no described in the checkTree object.\n *\n * @example\n * const browser = Bowser.getParser(window.navigator.userAgent);\n * if (browser.satisfies({chrome: '>118.01.1322' }))\n * // or with os\n * if (browser.satisfies({windows: { chrome: '>118.01.1322' } }))\n * // or with platforms\n * if (browser.satisfies({desktop: { chrome: '>118.01.1322' } }))\n */\n satisfies(checkTree) {\n const platformsAndOSes = {};\n let platformsAndOSCounter = 0;\n const browsers = {};\n let browsersCounter = 0;\n\n const allDefinitions = Object.keys(checkTree);\n\n allDefinitions.forEach((key) => {\n const currentDefinition = checkTree[key];\n if (typeof currentDefinition === 'string') {\n browsers[key] = currentDefinition;\n browsersCounter += 1;\n } else if (typeof currentDefinition === 'object') {\n platformsAndOSes[key] = currentDefinition;\n platformsAndOSCounter += 1;\n }\n });\n\n if (platformsAndOSCounter > 0) {\n const platformsAndOSNames = Object.keys(platformsAndOSes);\n const OSMatchingDefinition = Utils.find(platformsAndOSNames, name => (this.isOS(name)));\n\n if (OSMatchingDefinition) {\n const osResult = this.satisfies(platformsAndOSes[OSMatchingDefinition]);\n\n if (osResult !== void 0) {\n return osResult;\n }\n }\n\n const platformMatchingDefinition = Utils.find(\n platformsAndOSNames,\n name => (this.isPlatform(name)),\n );\n if (platformMatchingDefinition) {\n const platformResult = this.satisfies(platformsAndOSes[platformMatchingDefinition]);\n\n if (platformResult !== void 0) {\n return platformResult;\n }\n }\n }\n\n if (browsersCounter > 0) {\n const browserNames = Object.keys(browsers);\n const matchingDefinition = Utils.find(browserNames, name => (this.isBrowser(name, true)));\n\n if (matchingDefinition !== void 0) {\n return this.compareVersion(browsers[matchingDefinition]);\n }\n }\n\n return undefined;\n }\n\n /**\n * Check if the browser name equals the passed string\n * @param browserName The string to compare with the browser name\n * @param [includingAlias=false] The flag showing whether alias will be included into comparison\n * @returns {boolean}\n */\n isBrowser(browserName, includingAlias = false) {\n const defaultBrowserName = this.getBrowserName().toLowerCase();\n let browserNameLower = browserName.toLowerCase();\n const alias = Utils.getBrowserTypeByAlias(browserNameLower);\n\n if (includingAlias && alias) {\n browserNameLower = alias.toLowerCase();\n }\n return browserNameLower === defaultBrowserName;\n }\n\n compareVersion(version) {\n let expectedResults = [0];\n let comparableVersion = version;\n let isLoose = false;\n\n const currentBrowserVersion = this.getBrowserVersion();\n\n if (typeof currentBrowserVersion !== 'string') {\n return void 0;\n }\n\n if (version[0] === '>' || version[0] === '<') {\n comparableVersion = version.substr(1);\n if (version[1] === '=') {\n isLoose = true;\n comparableVersion = version.substr(2);\n } else {\n expectedResults = [];\n }\n if (version[0] === '>') {\n expectedResults.push(1);\n } else {\n expectedResults.push(-1);\n }\n } else if (version[0] === '=') {\n comparableVersion = version.substr(1);\n } else if (version[0] === '~') {\n isLoose = true;\n comparableVersion = version.substr(1);\n }\n\n return expectedResults.indexOf(\n Utils.compareVersions(currentBrowserVersion, comparableVersion, isLoose),\n ) > -1;\n }\n\n isOS(osName) {\n return this.getOSName(true) === String(osName).toLowerCase();\n }\n\n isPlatform(platformType) {\n return this.getPlatformType(true) === String(platformType).toLowerCase();\n }\n\n isEngine(engineName) {\n return this.getEngineName(true) === String(engineName).toLowerCase();\n }\n\n /**\n * Is anything? Check if the browser is called \"anything\",\n * the OS called \"anything\" or the platform called \"anything\"\n * @param {String} anything\n * @param [includingAlias=false] The flag showing whether alias will be included into comparison\n * @returns {Boolean}\n */\n is(anything, includingAlias = false) {\n return this.isBrowser(anything, includingAlias) || this.isOS(anything)\n || this.isPlatform(anything);\n }\n\n /**\n * Check if any of the given values satisfies this.is(anything)\n * @param {String[]} anythings\n * @returns {Boolean}\n */\n some(anythings = []) {\n return anythings.some(anything => this.is(anything));\n }\n}\n\nexport default Parser;\n","/*!\n * Bowser - a browser detector\n * https://github.com/lancedikson/bowser\n * MIT License | (c) Dustin Diaz 2012-2015\n * MIT License | (c) Denis Demchenko 2015-2019\n */\nimport Parser from './parser.js';\nimport {\n BROWSER_MAP,\n ENGINE_MAP,\n OS_MAP,\n PLATFORMS_MAP,\n} from './constants.js';\n\n/**\n * Bowser class.\n * Keep it simple as much as it can be.\n * It's supposed to work with collections of {@link Parser} instances\n * rather then solve one-instance problems.\n * All the one-instance stuff is located in Parser class.\n *\n * @class\n * @classdesc Bowser is a static object, that provides an API to the Parsers\n * @hideconstructor\n */\nclass Bowser {\n /**\n * Creates a {@link Parser} instance\n *\n * @param {String} UA UserAgent string\n * @param {Boolean} [skipParsing=false] Will make the Parser postpone parsing until you ask it\n * explicitly. Same as `skipParsing` for {@link Parser}.\n * @returns {Parser}\n * @throws {Error} when UA is not a String\n *\n * @example\n * const parser = Bowser.getParser(window.navigator.userAgent);\n * const result = parser.getResult();\n */\n static getParser(UA, skipParsing = false) {\n if (typeof UA !== 'string') {\n throw new Error('UserAgent should be a string');\n }\n return new Parser(UA, skipParsing);\n }\n\n /**\n * Creates a {@link Parser} instance and runs {@link Parser.getResult} immediately\n *\n * @param UA\n * @return {ParsedResult}\n *\n * @example\n * const result = Bowser.parse(window.navigator.userAgent);\n */\n static parse(UA) {\n return (new Parser(UA)).getResult();\n }\n\n static get BROWSER_MAP() {\n return BROWSER_MAP;\n }\n\n static get ENGINE_MAP() {\n return ENGINE_MAP;\n }\n\n static get OS_MAP() {\n return OS_MAP;\n }\n\n static get PLATFORMS_MAP() {\n return PLATFORMS_MAP;\n }\n}\n\nexport default Bowser;\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data\n .arrayBuffer()\n .then(toArray)\n .then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, encoded => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, encodedPacket => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n }\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* READ_PAYLOAD */;\n }\n else if (state === 2 /* READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n }\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\nexport function createCookieJar() { }\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { createCookieJar, XHR as XMLHttpRequest, } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false,\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n if (this.opts.withCredentials) {\n this.cookieJar = createCookieJar();\n }\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var _a;\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, true);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(xhr);\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { nextTick, usingBrowserWebSocket, WebSocket, } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"./websocket-constructor.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n // @ts-ignore\n if (typeof WebTransport !== \"function\") {\n return;\n }\n // @ts-ignore\n this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n this.transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this.writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this.writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this.writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: Polling,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 2000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { defaultBinaryType } from \"./transports/websocket-constructor.js\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts = {}) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\",\n ];\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", (reason) => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this.upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState && this.opts.upgrade) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n this.resetPingTimeout();\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n // the timeout flag is optional\n const withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise((resolve, reject) => {\n args.push((arg1, arg2) => {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n }\n else {\n return resolve(arg1);\n }\n });\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n this._drainQueue(true);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar gopd = require('gopd');\n\n/** @type {(obj: Record, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $floor = GetIntrinsic('%Math.floor%');\n\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(fn, 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(fn, 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tcache['$' + typedArray] = callBind(arr.slice);\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, typedArray) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t}\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nvar trySlices = function tryAllSlices(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, name) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tgetter(value);\n\t\t\t\tfound = $slice(name, 1);\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","import nodeCrypto from 'crypto';\nimport { ec as ec$1 } from 'elliptic';\n\nconst ec = new ec$1(\"secp256k1\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst browserCrypto = global.crypto || global.msCrypto || {};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst subtle = browserCrypto.subtle || browserCrypto.webkitSubtle;\nconst EC_GROUP_ORDER = Buffer.from(\"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\", \"hex\");\nconst ZERO32 = Buffer.alloc(32, 0);\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(message || \"Assertion failed\");\n }\n}\nfunction isScalar(x) {\n return Buffer.isBuffer(x) && x.length === 32;\n}\nfunction isValidPrivateKey(privateKey) {\n if (!isScalar(privateKey)) {\n return false;\n }\n return privateKey.compare(ZERO32) > 0 &&\n // > 0\n privateKey.compare(EC_GROUP_ORDER) < 0; // < G\n}\n\n// Compare two buffers in constant time to prevent timing attacks.\nfunction equalConstTime(b1, b2) {\n if (b1.length !== b2.length) {\n return false;\n }\n let res = 0;\n for (let i = 0; i < b1.length; i++) {\n res |= b1[i] ^ b2[i]; // jshint ignore:line\n }\n\n return res === 0;\n}\n\n/* This must check if we're in the browser or\nnot, since the functions are different and does\nnot convert using browserify */\nfunction randomBytes(size) {\n const arr = new Uint8Array(size);\n if (typeof browserCrypto.getRandomValues === \"undefined\") {\n return Buffer.from(nodeCrypto.randomBytes(size));\n }\n browserCrypto.getRandomValues(arr);\n return Buffer.from(arr);\n}\nasync function sha512(msg) {\n if (subtle) {\n const hash = await subtle.digest(\"SHA-512\", msg);\n const result = new Uint8Array(hash);\n return result;\n }\n const hash = nodeCrypto.createHash(\"sha512\");\n const result = hash.update(msg).digest();\n return new Uint8Array(result);\n}\nfunction getAes(op) {\n return async function (iv, key, data) {\n if (subtle) {\n const importAlgorithm = {\n name: \"AES-CBC\"\n };\n const cryptoKey = await subtle.importKey(\"raw\", key, importAlgorithm, false, [op]);\n const encAlgorithm = {\n name: \"AES-CBC\",\n iv\n };\n const result = await subtle[op](encAlgorithm, cryptoKey, data);\n return Buffer.from(new Uint8Array(result));\n } else if (op === \"encrypt\") {\n const cipher = nodeCrypto.createCipheriv(\"aes-256-cbc\", key, iv);\n const firstChunk = cipher.update(data);\n const secondChunk = cipher.final();\n return Buffer.concat([firstChunk, secondChunk]);\n } else if (op === \"decrypt\") {\n const decipher = nodeCrypto.createDecipheriv(\"aes-256-cbc\", key, iv);\n const firstChunk = decipher.update(data);\n const secondChunk = decipher.final();\n return Buffer.concat([firstChunk, secondChunk]);\n }\n throw new Error(`Unsupported operation: ${op}`);\n };\n}\nconst aesCbcEncrypt = getAes(\"encrypt\");\nconst aesCbcDecrypt = getAes(\"decrypt\");\nasync function hmacSha256Sign(key, msg) {\n if (subtle) {\n const importAlgorithm = {\n name: \"HMAC\",\n hash: {\n name: \"SHA-256\"\n }\n };\n const cryptoKey = await subtle.importKey(\"raw\", new Uint8Array(key), importAlgorithm, false, [\"sign\", \"verify\"]);\n const sig = await subtle.sign(\"HMAC\", cryptoKey, msg);\n const result = Buffer.from(new Uint8Array(sig));\n return result;\n }\n const hmac = nodeCrypto.createHmac(\"sha256\", Buffer.from(key));\n hmac.update(msg);\n const result = hmac.digest();\n return result;\n}\nasync function hmacSha256Verify(key, msg, sig) {\n const expectedSig = await hmacSha256Sign(key, msg);\n return equalConstTime(expectedSig, sig);\n}\n\n/**\n * Generate a new valid private key. Will use the window.crypto or window.msCrypto as source\n * depending on your browser.\n */\nconst generatePrivate = function () {\n let privateKey = randomBytes(32);\n while (!isValidPrivateKey(privateKey)) {\n privateKey = randomBytes(32);\n }\n return privateKey;\n};\nconst getPublic = function (privateKey) {\n // This function has sync API so we throw an error immediately.\n assert(privateKey.length === 32, \"Bad private key\");\n assert(isValidPrivateKey(privateKey), \"Bad private key\");\n // XXX(Kagami): `elliptic.utils.encode` returns array for every\n // encoding except `hex`.\n return Buffer.from(ec.keyFromPrivate(privateKey).getPublic(\"array\"));\n};\n\n/**\n * Get compressed version of public key.\n */\nconst getPublicCompressed = function (privateKey) {\n // jshint ignore:line\n assert(privateKey.length === 32, \"Bad private key\");\n assert(isValidPrivateKey(privateKey), \"Bad private key\");\n // See https://github.com/wanderer/secp256k1-node/issues/46\n const compressed = true;\n return Buffer.from(ec.keyFromPrivate(privateKey).getPublic(compressed, \"array\"));\n};\n\n// NOTE(Kagami): We don't use promise shim in Browser implementation\n// because it's supported natively in new browsers (see\n// ) and we can use only new browsers\n// because of the WebCryptoAPI (see\n// ).\nconst sign = async function (privateKey, msg) {\n assert(privateKey.length === 32, \"Bad private key\");\n assert(isValidPrivateKey(privateKey), \"Bad private key\");\n assert(msg.length > 0, \"Message should not be empty\");\n assert(msg.length <= 32, \"Message is too long\");\n return Buffer.from(ec.sign(msg, privateKey, {\n canonical: true\n }).toDER());\n};\nconst verify = async function (publicKey, msg, sig) {\n assert(publicKey.length === 65 || publicKey.length === 33, \"Bad public key\");\n if (publicKey.length === 65) {\n assert(publicKey[0] === 4, \"Bad public key\");\n }\n if (publicKey.length === 33) {\n assert(publicKey[0] === 2 || publicKey[0] === 3, \"Bad public key\");\n }\n assert(msg.length > 0, \"Message should not be empty\");\n assert(msg.length <= 32, \"Message is too long\");\n if (ec.verify(msg, sig, publicKey)) {\n return null;\n }\n throw new Error(\"Bad signature\");\n};\nconst derive = async function (privateKeyA, publicKeyB) {\n assert(Buffer.isBuffer(privateKeyA), \"Bad private key\");\n assert(Buffer.isBuffer(publicKeyB), \"Bad public key\");\n assert(privateKeyA.length === 32, \"Bad private key\");\n assert(isValidPrivateKey(privateKeyA), \"Bad private key\");\n assert(publicKeyB.length === 65 || publicKeyB.length === 33, \"Bad public key\");\n if (publicKeyB.length === 65) {\n assert(publicKeyB[0] === 4, \"Bad public key\");\n }\n if (publicKeyB.length === 33) {\n assert(publicKeyB[0] === 2 || publicKeyB[0] === 3, \"Bad public key\");\n }\n const keyA = ec.keyFromPrivate(privateKeyA);\n const keyB = ec.keyFromPublic(publicKeyB);\n const Px = keyA.derive(keyB.getPublic()); // BN instance\n return Buffer.from(Px.toArray());\n};\nconst deriveUnpadded = derive;\nconst derivePadded = async function (privateKeyA, publicKeyB) {\n assert(Buffer.isBuffer(privateKeyA), \"Bad private key\");\n assert(Buffer.isBuffer(publicKeyB), \"Bad public key\");\n assert(privateKeyA.length === 32, \"Bad private key\");\n assert(isValidPrivateKey(privateKeyA), \"Bad private key\");\n assert(publicKeyB.length === 65 || publicKeyB.length === 33, \"Bad public key\");\n if (publicKeyB.length === 65) {\n assert(publicKeyB[0] === 4, \"Bad public key\");\n }\n if (publicKeyB.length === 33) {\n assert(publicKeyB[0] === 2 || publicKeyB[0] === 3, \"Bad public key\");\n }\n const keyA = ec.keyFromPrivate(privateKeyA);\n const keyB = ec.keyFromPublic(publicKeyB);\n const Px = keyA.derive(keyB.getPublic()); // BN instance\n return Buffer.from(Px.toString(16, 64), \"hex\");\n};\nconst encrypt = async function (publicKeyTo, msg, opts) {\n opts = opts || {};\n let ephemPrivateKey = opts.ephemPrivateKey || randomBytes(32);\n // There is a very unlikely possibility that it is not a valid key\n while (!isValidPrivateKey(ephemPrivateKey)) {\n ephemPrivateKey = opts.ephemPrivateKey || randomBytes(32);\n }\n const ephemPublicKey = getPublic(ephemPrivateKey);\n const Px = await deriveUnpadded(ephemPrivateKey, publicKeyTo);\n const hash = await sha512(Px);\n const iv = opts.iv || randomBytes(16);\n const encryptionKey = hash.slice(0, 32);\n const macKey = hash.slice(32);\n const data = await aesCbcEncrypt(iv, Buffer.from(encryptionKey), msg);\n const ciphertext = data;\n const dataToMac = Buffer.concat([iv, ephemPublicKey, ciphertext]);\n const mac = await hmacSha256Sign(Buffer.from(macKey), dataToMac);\n return {\n iv,\n ephemPublicKey,\n ciphertext,\n mac\n };\n};\nconst decrypt = async function (privateKey, opts, _padding) {\n const padding = _padding !== null && _padding !== void 0 ? _padding : false;\n const deriveLocal = padding ? derivePadded : deriveUnpadded;\n const Px = await deriveLocal(privateKey, opts.ephemPublicKey);\n const hash = await sha512(Px);\n const encryptionKey = hash.slice(0, 32);\n const macKey = hash.slice(32);\n const dataToMac = Buffer.concat([opts.iv, opts.ephemPublicKey, opts.ciphertext]);\n const macGood = await hmacSha256Verify(Buffer.from(macKey), dataToMac, opts.mac);\n if (!macGood && padding === false) {\n return decrypt(privateKey, opts, true);\n } else if (!macGood && padding === true) {\n throw new Error(\"bad MAC after trying padded\");\n }\n const msg = await aesCbcDecrypt(opts.iv, Buffer.from(encryptionKey), opts.ciphertext);\n return Buffer.from(new Uint8Array(msg));\n};\n\nexport { decrypt, derive, derivePadded, deriveUnpadded, encrypt, generatePrivate, getPublic, getPublicCompressed, sign, verify };\n//# sourceMappingURL=eccrypto.esm.js.map\n","'use strict';\n\nvar at; // The index of the current character\nvar ch; // The current character\nvar escapee = {\n\t'\"': '\"',\n\t'\\\\': '\\\\',\n\t'/': '/',\n\tb: '\\b',\n\tf: '\\f',\n\tn: '\\n',\n\tr: '\\r',\n\tt: '\\t'\n};\nvar text;\n\n// Call error when something is wrong.\nfunction error(m) {\n\tthrow {\n\t\tname: 'SyntaxError',\n\t\tmessage: m,\n\t\tat: at,\n\t\ttext: text\n\t};\n}\n\nfunction next(c) {\n\t// If a c parameter is provided, verify that it matches the current character.\n\tif (c && c !== ch) {\n\t\terror(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n\t}\n\n\t// Get the next character. When there are no more characters, return the empty string.\n\n\tch = text.charAt(at);\n\tat += 1;\n\treturn ch;\n}\n\nfunction number() {\n\t// Parse a number value.\n\tvar num;\n\tvar str = '';\n\n\tif (ch === '-') {\n\t\tstr = '-';\n\t\tnext('-');\n\t}\n\twhile (ch >= '0' && ch <= '9') {\n\t\tstr += ch;\n\t\tnext();\n\t}\n\tif (ch === '.') {\n\t\tstr += '.';\n\t\twhile (next() && ch >= '0' && ch <= '9') {\n\t\t\tstr += ch;\n\t\t}\n\t}\n\tif (ch === 'e' || ch === 'E') {\n\t\tstr += ch;\n\t\tnext();\n\t\tif (ch === '-' || ch === '+') {\n\t\t\tstr += ch;\n\t\t\tnext();\n\t\t}\n\t\twhile (ch >= '0' && ch <= '9') {\n\t\t\tstr += ch;\n\t\t\tnext();\n\t\t}\n\t}\n\tnum = Number(str);\n\tif (!isFinite(num)) {\n\t\terror('Bad number');\n\t}\n\treturn num;\n}\n\nfunction string() {\n\t// Parse a string value.\n\tvar hex;\n\tvar i;\n\tvar str = '';\n\tvar uffff;\n\n\t// When parsing for string values, we must look for \" and \\ characters.\n\tif (ch === '\"') {\n\t\twhile (next()) {\n\t\t\tif (ch === '\"') {\n\t\t\t\tnext();\n\t\t\t\treturn str;\n\t\t\t} else if (ch === '\\\\') {\n\t\t\t\tnext();\n\t\t\t\tif (ch === 'u') {\n\t\t\t\t\tuffff = 0;\n\t\t\t\t\tfor (i = 0; i < 4; i += 1) {\n\t\t\t\t\t\thex = parseInt(next(), 16);\n\t\t\t\t\t\tif (!isFinite(hex)) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tuffff = (uffff * 16) + hex;\n\t\t\t\t\t}\n\t\t\t\t\tstr += String.fromCharCode(uffff);\n\t\t\t\t} else if (typeof escapee[ch] === 'string') {\n\t\t\t\t\tstr += escapee[ch];\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstr += ch;\n\t\t\t}\n\t\t}\n\t}\n\terror('Bad string');\n}\n\n// Skip whitespace.\nfunction white() {\n\twhile (ch && ch <= ' ') {\n\t\tnext();\n\t}\n}\n\n// true, false, or null.\nfunction word() {\n\tswitch (ch) {\n\t\tcase 't':\n\t\t\tnext('t');\n\t\t\tnext('r');\n\t\t\tnext('u');\n\t\t\tnext('e');\n\t\t\treturn true;\n\t\tcase 'f':\n\t\t\tnext('f');\n\t\t\tnext('a');\n\t\t\tnext('l');\n\t\t\tnext('s');\n\t\t\tnext('e');\n\t\t\treturn false;\n\t\tcase 'n':\n\t\t\tnext('n');\n\t\t\tnext('u');\n\t\t\tnext('l');\n\t\t\tnext('l');\n\t\t\treturn null;\n\t\tdefault:\n\t\t\terror(\"Unexpected '\" + ch + \"'\");\n\t}\n}\n\n// Parse an array value.\nfunction array() {\n\tvar arr = [];\n\n\tif (ch === '[') {\n\t\tnext('[');\n\t\twhite();\n\t\tif (ch === ']') {\n\t\t\tnext(']');\n\t\t\treturn arr; // empty array\n\t\t}\n\t\twhile (ch) {\n\t\t\tarr.push(value()); // eslint-disable-line no-use-before-define\n\t\t\twhite();\n\t\t\tif (ch === ']') {\n\t\t\t\tnext(']');\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\tnext(',');\n\t\t\twhite();\n\t\t}\n\t}\n\terror('Bad array');\n}\n\n// Parse an object value.\nfunction object() {\n\tvar key;\n\tvar obj = {};\n\n\tif (ch === '{') {\n\t\tnext('{');\n\t\twhite();\n\t\tif (ch === '}') {\n\t\t\tnext('}');\n\t\t\treturn obj; // empty object\n\t\t}\n\t\twhile (ch) {\n\t\t\tkey = string();\n\t\t\twhite();\n\t\t\tnext(':');\n\t\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\t\terror('Duplicate key \"' + key + '\"');\n\t\t\t}\n\t\t\tobj[key] = value(); // eslint-disable-line no-use-before-define\n\t\t\twhite();\n\t\t\tif (ch === '}') {\n\t\t\t\tnext('}');\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tnext(',');\n\t\t\twhite();\n\t\t}\n\t}\n\terror('Bad object');\n}\n\n// Parse a JSON value. It could be an object, an array, a string, a number, or a word.\nfunction value() {\n\twhite();\n\tswitch (ch) {\n\t\tcase '{':\n\t\t\treturn object();\n\t\tcase '[':\n\t\t\treturn array();\n\t\tcase '\"':\n\t\t\treturn string();\n\t\tcase '-':\n\t\t\treturn number();\n\t\tdefault:\n\t\t\treturn ch >= '0' && ch <= '9' ? number() : word();\n\t}\n}\n\n// Return the json_parse function. It will have access to all of the above functions and variables.\nmodule.exports = function (source, reviver) {\n\tvar result;\n\n\ttext = source;\n\tat = 0;\n\tch = ' ';\n\tresult = value();\n\twhite();\n\tif (ch) {\n\t\terror('Syntax error');\n\t}\n\n\t// If there is a reviver function, we recursively walk the new structure,\n\t// passing each name/value pair to the reviver function for possible\n\t// transformation, starting with a temporary root object that holds the result\n\t// in an empty key. If there is not a reviver function, we simply return the\n\t// result.\n\n\treturn typeof reviver === 'function' ? (function walk(holder, key) {\n\t\tvar k;\n\t\tvar v;\n\t\tvar val = holder[key];\n\t\tif (val && typeof val === 'object') {\n\t\t\tfor (k in value) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(val, k)) {\n\t\t\t\t\tv = walk(val, k);\n\t\t\t\t\tif (typeof v === 'undefined') {\n\t\t\t\t\t\tdelete val[k];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tval[k] = v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn reviver.call(holder, key, val);\n\t}({ '': result }, '')) : result;\n};\n","'use strict';\n\nvar escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\nvar gap;\nvar indent;\nvar meta = { // table of character substitutions\n\t'\\b': '\\\\b',\n\t'\\t': '\\\\t',\n\t'\\n': '\\\\n',\n\t'\\f': '\\\\f',\n\t'\\r': '\\\\r',\n\t'\"': '\\\\\"',\n\t'\\\\': '\\\\\\\\'\n};\nvar rep;\n\nfunction quote(string) {\n\t// If the string contains no control characters, no quote characters, and no\n\t// backslash characters, then we can safely slap some quotes around it.\n\t// Otherwise we must also replace the offending characters with safe escape sequences.\n\n\tescapable.lastIndex = 0;\n\treturn escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n\t\tvar c = meta[a];\n\t\treturn typeof c === 'string' ? c\n\t\t\t: '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n\t}) + '\"' : '\"' + string + '\"';\n}\n\nfunction str(key, holder) {\n\t// Produce a string from holder[key].\n\tvar i; // The loop counter.\n\tvar k; // The member key.\n\tvar v; // The member value.\n\tvar length;\n\tvar mind = gap;\n\tvar partial;\n\tvar value = holder[key];\n\n\t// If the value has a toJSON method, call it to obtain a replacement value.\n\tif (value && typeof value === 'object' && typeof value.toJSON === 'function') {\n\t\tvalue = value.toJSON(key);\n\t}\n\n\t// If we were called with a replacer function, then call the replacer to obtain a replacement value.\n\tif (typeof rep === 'function') {\n\t\tvalue = rep.call(holder, key, value);\n\t}\n\n\t// What happens next depends on the value's type.\n\tswitch (typeof value) {\n\t\tcase 'string':\n\t\t\treturn quote(value);\n\n\t\tcase 'number':\n\t\t\t// JSON numbers must be finite. Encode non-finite numbers as null.\n\t\t\treturn isFinite(value) ? String(value) : 'null';\n\n\t\tcase 'boolean':\n\t\tcase 'null':\n\t\t\t// If the value is a boolean or null, convert it to a string. Note:\n\t\t\t// typeof null does not produce 'null'. The case is included here in\n\t\t\t// the remote chance that this gets fixed someday.\n\t\t\treturn String(value);\n\n\t\tcase 'object':\n\t\t\tif (!value) {\n\t\t\t\treturn 'null';\n\t\t\t}\n\t\t\tgap += indent;\n\t\t\tpartial = [];\n\n\t\t\t// Array.isArray\n\t\t\tif (Object.prototype.toString.apply(value) === '[object Array]') {\n\t\t\t\tlength = value.length;\n\t\t\t\tfor (i = 0; i < length; i += 1) {\n\t\t\t\t\tpartial[i] = str(i, value) || 'null';\n\t\t\t\t}\n\n\t\t\t\t// Join all of the elements together, separated with commas, and wrap them in brackets.\n\t\t\t\tv = partial.length === 0 ? '[]' : gap\n\t\t\t\t\t? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n\t\t\t\t\t: '[' + partial.join(',') + ']';\n\t\t\t\tgap = mind;\n\t\t\t\treturn v;\n\t\t\t}\n\n\t\t\t// If the replacer is an array, use it to select the members to be stringified.\n\t\t\tif (rep && typeof rep === 'object') {\n\t\t\t\tlength = rep.length;\n\t\t\t\tfor (i = 0; i < length; i += 1) {\n\t\t\t\t\tk = rep[i];\n\t\t\t\t\tif (typeof k === 'string') {\n\t\t\t\t\t\tv = str(k, value);\n\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\tpartial.push(quote(k) + (gap ? ': ' : ':') + v);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, iterate through all of the keys in the object.\n\t\t\t\tfor (k in value) {\n\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(value, k)) {\n\t\t\t\t\t\tv = str(k, value);\n\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\tpartial.push(quote(k) + (gap ? ': ' : ':') + v);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Join all of the member texts together, separated with commas, and wrap them in braces.\n\n\t\t\tv = partial.length === 0 ? '{}' : gap\n\t\t\t\t? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n\t\t\t\t: '{' + partial.join(',') + '}';\n\t\t\tgap = mind;\n\t\t\treturn v;\n\t\tdefault:\n\t}\n}\n\nmodule.exports = function (value, replacer, space) {\n\tvar i;\n\tgap = '';\n\tindent = '';\n\n\t// If the space parameter is a number, make an indent string containing that many spaces.\n\tif (typeof space === 'number') {\n\t\tfor (i = 0; i < space; i += 1) {\n\t\t\tindent += ' ';\n\t\t}\n\t} else if (typeof space === 'string') {\n\t\t// If the space parameter is a string, it will be used as the indent string.\n\t\tindent = space;\n\t}\n\n\t// If there is a replacer, it must be a function or an array. Otherwise, throw an error.\n\trep = replacer;\n\tif (\n\t\treplacer\n\t\t&& typeof replacer !== 'function'\n\t\t&& (typeof replacer !== 'object' || typeof replacer.length !== 'number')\n\t) {\n\t\tthrow new Error('JSON.stringify');\n\t}\n\n\t// Make a fake root object containing our value under the key of ''.\n\t// Return the result of stringifying the value.\n\treturn str('', { '': value });\n};\n","'use strict';\n\nexports.parse = require('./lib/parse');\nexports.stringify = require('./lib/stringify');\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar jsonStringify = (typeof JSON !== 'undefined' ? JSON : require('jsonify')).stringify;\n\nvar isArray = require('isarray');\nvar objectKeys = require('object-keys');\nvar callBind = require('call-bind');\n\nvar strRepeat = function repeat(n, char) {\n\tvar str = '';\n\tfor (var i = 0; i < n; i += 1) {\n\t\tstr += char;\n\t}\n\treturn str;\n};\n\nvar defaultReplacer = function (parent, key, value) { return value; };\n\nmodule.exports = function stableStringify(obj) {\n\tvar opts = arguments.length > 1 ? arguments[1] : void undefined;\n\tvar space = (opts && opts.space) || '';\n\tif (typeof space === 'number') { space = strRepeat(space, ' '); }\n\tvar cycles = !!opts && typeof opts.cycles === 'boolean' && opts.cycles;\n\tvar replacer = opts && opts.replacer ? callBind(opts.replacer) : defaultReplacer;\n\n\tvar cmpOpt = typeof opts === 'function' ? opts : opts && opts.cmp;\n\tvar cmp = cmpOpt && function (node) {\n\t\tvar get = cmpOpt.length > 2 && function get(k) { return node[k]; };\n\t\treturn function (a, b) {\n\t\t\treturn cmpOpt(\n\t\t\t\t{ key: a, value: node[a] },\n\t\t\t\t{ key: b, value: node[b] },\n\t\t\t\tget ? { __proto__: null, get: get } : void undefined\n\t\t\t);\n\t\t};\n\t};\n\n\tvar seen = [];\n\treturn (function stringify(parent, key, node, level) {\n\t\tvar indent = space ? '\\n' + strRepeat(level, space) : '';\n\t\tvar colonSeparator = space ? ': ' : ':';\n\n\t\tif (node && node.toJSON && typeof node.toJSON === 'function') {\n\t\t\tnode = node.toJSON();\n\t\t}\n\n\t\tnode = replacer(parent, key, node);\n\n\t\tif (node === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tif (typeof node !== 'object' || node === null) {\n\t\t\treturn jsonStringify(node);\n\t\t}\n\t\tif (isArray(node)) {\n\t\t\tvar out = '';\n\t\t\tfor (var i = 0; i < node.length; i++) {\n\t\t\t\tvar item = stringify(node, i, node[i], level + 1) || jsonStringify(null);\n\t\t\t\tout += indent + space + item;\n\t\t\t\tif ((i + 1) < node.length) {\n\t\t\t\t\tout += ',';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '[' + out + indent + ']';\n\t\t}\n\n\t\tif (seen.indexOf(node) !== -1) {\n\t\t\tif (cycles) { return jsonStringify('__cycle__'); }\n\t\t\tthrow new TypeError('Converting circular structure to JSON');\n\t\t} else { seen.push(node); }\n\n\t\tvar keys = objectKeys(node).sort(cmp && cmp(node));\n\t\tvar out = '';\n\t\tvar needsComma = false;\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tvar value = stringify(node, key, node[key], level + 1);\n\n\t\t\tif (!value) { continue; }\n\n\t\t\tvar keyValue = jsonStringify(key)\n\t\t\t\t+ colonSeparator\n\t\t\t\t+ value;\n\n\t\t\tout += (needsComma ? ',' : '') + indent + space + keyValue;\n\t\t\tneedsComma = true;\n\t\t}\n\t\tseen.splice(seen.indexOf(node), 1);\n\t\treturn '{' + out + indent + '}';\n\n\t}({ '': obj }, '', obj, 0));\n};\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport { setAPIKey, setEmbedHost, post } from '@toruslabs/http-helpers';\nimport stringify from 'json-stable-stringify';\nimport { ec as ec$1 } from 'elliptic';\nimport { keccak256 as keccak256$1 } from 'ethereum-cryptography/keccak';\nimport { encrypt, getPublic, decrypt } from '@toruslabs/eccrypto';\n\nfunction keccak256(a) {\n return Buffer.from(keccak256$1(a));\n}\nconst ec = new ec$1(\"secp256k1\");\n\nclass MetadataStorageLayer {\n // ms\n\n constructor() {\n let metadataHost = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"https://metadata.tor.us\";\n let serverTimeOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n _defineProperty(this, \"metadataHost\", void 0);\n _defineProperty(this, \"serverTimeOffset\", void 0);\n this.metadataHost = metadataHost;\n this.serverTimeOffset = serverTimeOffset;\n }\n static setAPIKey(apiKey) {\n setAPIKey(apiKey);\n }\n static setEmbedHost(embedHost) {\n setEmbedHost(embedHost);\n }\n generateMetadataParams(message, privateKeyHex) {\n var _sig$recoveryParam$to, _sig$recoveryParam;\n const key = ec.keyFromPrivate(privateKeyHex, \"hex\");\n const setData = {\n data: message,\n timestamp: Math.floor(this.serverTimeOffset + Date.now() / 1000).toString(16)\n };\n const sig = key.sign(keccak256(Buffer.from(stringify(setData), \"utf8\")));\n return {\n pub_key_X: key.getPublic().getX().toString(16, 64),\n pub_key_Y: key.getPublic().getY().toString(16, 64),\n set_data: setData,\n signature: Buffer.from(sig.r.toString(16, 64) + sig.s.toString(16, 64) + ((_sig$recoveryParam$to = (_sig$recoveryParam = sig.recoveryParam) === null || _sig$recoveryParam === void 0 ? void 0 : _sig$recoveryParam.toString(16).padStart(2, \"0\").slice(-2)) !== null && _sig$recoveryParam$to !== void 0 ? _sig$recoveryParam$to : \"00\"), \"hex\").toString(\"base64\")\n };\n }\n generatePubKeyParams(privateKeyHex) {\n const key = ec.keyFromPrivate(privateKeyHex, \"hex\");\n return {\n pub_key_X: key.getPublic().getX().toString(16, 64),\n pub_key_Y: key.getPublic().getY().toString(16, 64)\n };\n }\n async setMetadata(data, namespace, options) {\n const params = namespace !== null ? _objectSpread(_objectSpread({}, data), {}, {\n namespace\n }) : data;\n const metadataResponse = await post(`${this.metadataHost}/set`, params, options, {\n useAPIKey: true\n });\n return metadataResponse.message;\n }\n async getMetadata(pubKey, namespace, options) {\n const params = namespace !== null ? _objectSpread(_objectSpread({}, pubKey), {}, {\n namespace\n }) : pubKey;\n const metadataResponse = await post(`${this.metadataHost}/get`, params, options, {\n useAPIKey: true\n });\n return metadataResponse.message;\n }\n}\n\nconst WEBAUTHN_TORUS_SHARE = \"webauthn_torus_share\";\nconst WEBAUTHN_DEVICE_SHARE = \"webauthn_device_share\";\nfunction encParamsHexToBuf(encParamsHex) {\n return {\n iv: Buffer.from(encParamsHex.iv, \"hex\"),\n ephemPublicKey: Buffer.from(encParamsHex.ephemPublicKey, \"hex\"),\n ciphertext: Buffer.from(encParamsHex.ciphertext, \"hex\"),\n mac: Buffer.from(encParamsHex.mac, \"hex\")\n };\n}\nfunction encParamsBufToHex(encParams) {\n return {\n iv: Buffer.from(encParams.iv).toString(\"hex\"),\n ephemPublicKey: Buffer.from(encParams.ephemPublicKey).toString(\"hex\"),\n ciphertext: Buffer.from(encParams.ciphertext).toString(\"hex\"),\n mac: Buffer.from(encParams.mac).toString(\"hex\")\n };\n}\nasync function encryptData(privKeyHex, d) {\n const serializedDec = JSON.stringify(d);\n const serializedBuf = Buffer.from(serializedDec, \"utf-8\");\n const encParams = await encrypt(getPublic(Buffer.from(privKeyHex, \"hex\")), serializedBuf);\n const encParamsHex = encParamsBufToHex(encParams);\n const sData = JSON.stringify(encParamsHex);\n return sData;\n}\nasync function decryptData(privKeyHex, d) {\n const encParamsHex = JSON.parse(d);\n const encParams = encParamsHexToBuf(encParamsHex);\n const keyPair = ec.keyFromPrivate(privKeyHex);\n const serializedBuf = await decrypt(Buffer.from(keyPair.getPrivate().toString(\"hex\", 64), \"hex\"), encParams);\n const serializedDec = serializedBuf.toString(\"utf-8\");\n const data = JSON.parse(serializedDec);\n return data;\n}\nasync function getAndDecryptData(m, privKeyHex, namespace) {\n const keyPair = ec.keyFromPrivate(privKeyHex);\n const pubKey = keyPair.getPublic();\n const serializedData = await m.getMetadata({\n pub_key_X: pubKey.getX().toString(16),\n pub_key_Y: pubKey.getY().toString(16)\n }, namespace);\n if (!serializedData) {\n return null;\n }\n const data = await decryptData(privKeyHex, serializedData);\n return data;\n}\nasync function encryptAndSetData(m, privKeyHex, d, namespace) {\n const sData = await encryptData(privKeyHex, d);\n const metadataParams = m.generateMetadataParams(sData, privKeyHex);\n await m.setMetadata(metadataParams, namespace);\n}\nasync function setTorusShare(m, webAuthnPubKey, webAuthnRefHex, subspace, subspaceData) {\n const refKeyPair = ec.keyFromPrivate(webAuthnRefHex);\n const privKey = refKeyPair.getPrivate();\n const pubKey = ec.keyFromPublic({\n x: webAuthnPubKey.pub_key_X,\n y: webAuthnPubKey.pub_key_Y\n });\n const data = await getAndDecryptData(m, webAuthnRefHex, WEBAUTHN_TORUS_SHARE);\n let d = {};\n if (data) d = data;\n const serializedSubspaceData = JSON.stringify(subspaceData);\n const serializedSubspaceDataBuf = Buffer.from(serializedSubspaceData, \"utf-8\");\n const encSubspaceData = await encrypt(Buffer.from(pubKey.getPublic(\"hex\"), \"hex\"), serializedSubspaceDataBuf);\n const encSubspaceDataHex = encParamsBufToHex(encSubspaceData);\n d[subspace] = encSubspaceDataHex;\n await encryptAndSetData(m, privKey.toString(\"hex\", 64), d, WEBAUTHN_TORUS_SHARE);\n}\nasync function setDeviceShare(m, webAuthnRefHex, subspace, subspaceData) {\n const keyPair = ec.keyFromPrivate(webAuthnRefHex);\n const privKey = keyPair.getPrivate();\n const data = await getAndDecryptData(m, webAuthnRefHex, WEBAUTHN_DEVICE_SHARE);\n let d = {};\n if (data) d = data;\n d[subspace] = subspaceData;\n await encryptAndSetData(m, privKey.toString(\"hex\", 64), d, WEBAUTHN_DEVICE_SHARE);\n}\nasync function getTorusShare(m, webAuthnKeyHex, webAuthnRefHex, subspace) {\n const data = await getAndDecryptData(m, webAuthnRefHex, WEBAUTHN_TORUS_SHARE);\n if (!data) return null;\n const encParamsHex = data[subspace];\n if (!encParamsHex) return null;\n const encParams = encParamsHexToBuf(encParamsHex);\n const keyPair = ec.keyFromPrivate(webAuthnKeyHex);\n const privKey = keyPair.getPrivate();\n const serializedSubspaceDataBuf = await decrypt(Buffer.from(privKey.toString(\"hex\", 64), \"hex\"), encParams);\n const serializedSubspaceData = serializedSubspaceDataBuf.toString(\"utf-8\");\n const subspaceData = JSON.parse(serializedSubspaceData);\n return subspaceData;\n}\nasync function getDeviceShare(m, webAuthnRefHex, subspace) {\n const data = await getAndDecryptData(m, webAuthnRefHex, WEBAUTHN_DEVICE_SHARE);\n if (data) return data[subspace];\n return null;\n}\n\nexport { decryptData, MetadataStorageLayer as default, ec, encParamsBufToHex, encParamsHexToBuf, encryptAndSetData, encryptData, getAndDecryptData, getDeviceShare, getTorusShare, keccak256, setDeviceShare, setTorusShare };\n//# sourceMappingURL=metadataHelpers.esm.js.map\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '